Comments.tpl

Файл предназначен для вывода списка комментариев, также он содержит форму для постинга.

Пример:

 1 <!-- Если массив $comments_arr содержит комментарии, то запускаем цикл -->
 2 {if $comments_arr}
 3     <!-- Общее количество комментариев -->
 4     <h3>{$total_comments}</h3>
 5 
 6     {foreach $comments_arr as $comment}
 7     <div id="comment_{$comment.id}">
 8         <p>
 9             {$comment.user_name}
10             <br />
11             {date('d-m-Y H:i', $comment.date)} 
12         </p>
13 
14         <p>
15             {$comment.text}
16         </p>
17     </div>
18     {/foreach}
19 {/if}
20 
21 <h3>{lang('post_comment')}</h3>
22 
23 <!-- Если позволено комментировать только зарегистрированным пользователям, то выводим сообщение с ссылкой на авторизацию -->
24 {if $can_comment === 1 AND !is_logged_in}
25      <p>{sprintf(lang('login_for_comments'), site_url($modules.auth))}</p>
26 {/if}
27 
28 <!-- Форма постинга комментария -->
29 <form action="{$modules.comments}/add/" method="post" class="form">
30     <input type="hidden" name="comment_item_id" value="{$item_id}" />
31 
32     <!-- Если пользователь авторизирован, выводим сообщение "Вы вошли как ..." -->
33     {if $is_logged_in}
34         <p>{lang('lang_logged_in_as')} {$username}. <a href="{site_url('auth/logout')}">{lang('lang_logout')}</a></p>         
35     {else:}
36     <!-- Если пользователь не авторизирован, то выводим поля "Имя" и "Почта" -->
37         {lang('lang_comment_author')} 
38     <input type="text" name="comment_author" value="{get_cookie('comment_author')}"/>
39 
40         {lang('lang_comment_email')}
41     <input type="text" name="comment_email" value="{get_cookie('comment_email')}"/>
42     {/if}
43 
44     {lang('lang_comment_text')}
45     <textarea name="comment_text" rows="10" cols="50"></textarea>
46 
47     <!-- Если в настройках указано использовать captcha -->
48     {if $use_captcha}
49         {lang('lang_captcha')}
50     <input type="text" name="captcha" value=""/> 
51 
52         <!-- HTML код изображения с кодом протекции -->
53     {$cap_image}
54     {/if} 
55 
56     <input type="submit" value="{lang('lang_comment_button')}" />
57 
58     <!-- Для защиты от CSRF атак --> 
59     {form_csrf()}
60 </form>

Переменные массива {$comments}

  • id - ID комментария
  • user_id - ID пользователя
  • user_name - Имя пользователя
  • user_mail - E-mail пользователя
  • item_id - ID страницы
  • text - Текст комментария
  • date - Дата публикации комментария
  • status - Статус комментария (0 - Одобрен, 1 - Ждет проверки, 2 - Спам)
  • agent - Строка содержащая веб-браузера
  • user_ip - IP адрес пользователя

Полезные ссылки

  • Комментарии - управление комментариями в административной части
  • page_full.tpl - отображение вывода полного текста объекта содержимого.