Логотип

Документация по макросам и шаблонам UMI.CMS

comments insert()

Название

%comments insert()% — Выводит список комментариев для страницы.

Параметры: comments insert( [element_id = 0, template = 'default', order = 0] )

element_id

id страницы, для которой выводится список комментариев.

template

Имя шаблона, по которому выводится список комментариев. В XSLT-шаблонизаторе игнорируется.

order

Порядок вывода элементов. В качестве значения можно передать "1" (прямой порядок) или "0" (обратный порядок).

Описание

Макрос выводит список комментариев для страницы, указанной в параметре element_id. Если параметр не указан, система берет id текущей страницы.

Дополнительные сведения

<?=$this->render($this->macros('comments', 'insert', array($page->getId())), 'comment/insert')?>

Пример вызова

udata://comments/insert/25

XML-ответ UData

<udata module="comments" method="insert" generation-time="0.073886">
  <items>
    <item 
     id="20" title="Заголовок первого комментария" author_id="27142" num="1"
     xlink:href="upage://20"
     xlink:author-href="udata://users/viewAuthor/27142"
     publish_time="1255517104">Текст первого комментария</item>
    <item id="19" title="Заголовок второго комментария" author_id="27142" num="2"
     xlink:href="upage://19"
     xlink:author-href="udata://users/viewAuthor/27142"
     publish_time="1255517093">Текст второго комментария</item>
    <item id="18" title="Заголовок третьего комментария" author_id="27142" num="3"
     xlink:href="upage://18"
     xlink:author-href="udata://users/viewAuthor/27142"
     publish_time="1255517079">Текст третьего комментария</item>
  </items>
  <per_page>3</per_page>
  <total>6</total>
  <add_form>
    <action>/comments/post/9/</action>
  </add_form>
  <action>/comments/post/9/</action>
</udata>

Элементы и атрибуты

<items>

Ветвь, содержащая элементы item — комментарии к указанной странице.

<item>

Элемент, описывающий отдельный комментарий. Содержимое элемента — текст комментария.

@id

Идентификатор комментария.

@title

Заголовок комментария.

@author_id

Идентификатор пользователя, оставившего комментарий.

@num

Порядковый номер комментария.

@xlink:href

Ссылка UPage на комментарий.

@xlink:author-href

Ссылка на автора: метод %users viewAuthor()%.

@publish_time

Время публикации комментария в UNIX TIMESTAMP. Для конвертации можно воспользоваться %system convertDate()%.

<per_page>

Количество комментариев, отображаемое на странице. Задается в настройках модуля.

<total>

Общее количество комментариев для указанной страницы.

<add_form>

Ветвь, описывающая форму добавления комментария. Не используется.

<action>

Action для формы добавления комментария.

Вывод списка комментариев осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, тогда для вывода будет использован шаблон по умолчанию — default.tpl.

Используемые шаблоны

Макрос оперирует шаблонами, находящимися в каталоге /tpls/comments/.

Используемые блоки шаблона

comments_block

Блок вывода списка комментариев.

%lines%

Список комментариев, сформированный по блоку шаблона comments_block_line.

%total%

Общее количество комментариев для указанной страницы.

%per_page%

Количество выводимых на страницу комментариев.

%add_form%

Вставляет форму добавления комментария из блоков comments_block_add_guest , либо comments_block_add_user .

comments_block_line

Блок вывода информации об отдельном комментарии.

%id%

id комментария.

%num%

Порядковый номер выводимого комментария.

%list-class-first%

в случае, если элемент первый, выводит "first"

%list-class-last%

в случае, если элемент последний, выводит "last"

%list-class-odd%

в случае, если элемент четный, выводит "odd"

%list-class-even%

в случае, если элемент нечетный, выводит "even"

%list-position%

вставляет порядковый номер в списке

comments_block_add_user

Блок с формой добавления комментария для авторизованного пользователя.

%action%

Сформированный модулем адрес, по которому будет отправляться форма (атрибут action для тега form).

comments_block_add_guest

Блок с формой добавления комментария для неавторизованного пользователя

%action%

Сформированный модулем адрес, по которому будет отправляться форма (атрибут action для тега form).

Примеры использования

Создайте любую страницу в дереве сайта.

В визуальном редакторе напишите макрос: %comments insert(%pid%, 'sample')%.

Создайте файл sample.tpl в директории /tpls/comments/ и напишите в нем следующий код:

<?php

$FORMS['comments_block'] = <<<COMMENT_BLOCK

 <div style="clear: both;"></div>
 <h3>Комментарии</h3>
 <a name="comments"></a>
 <div class="spacer"></div>

 %lines%
 
 %system numpages(%total%, %per_page%, 'default')%

 <br />

 %add_form%

COMMENT_BLOCK;


$FORMS['comments_block_line'] = <<<COMMENT_LINE

 <p><b class="s_num">%num%.</b> 
    <b>%title%</b>&#160;— %users viewAuthor(%author_id%)%<br />
    <i>%system convertDate(%publish_time%, 'Y-m-d в H:i')%</i>
 </p>
 <p>%message%</p>

COMMENT_LINE;


$FORMS['comments_block_add_user'] = <<<ADD_FORM_USER

 <form method="post" action="%action%">

  <table cellspacing="5" cellpadding="0" border="0">
    <tr>
     <td>Заголовок комментария:<br />
      <input type="text" name="title" size="50" style="width: 350px;" class="textinputs" />
      </td>
    </tr>

    <tr>
     <td>Текст комментария:<br />
      <textarea name="comment" style="width: 350px; height: 120px;" class="textinputs"></textarea>
     </td>
    </tr>

    <tr>
     <td>
      <input type="submit" value="Добавить комментарий" />
     </td>
    </tr>
  </table>

 </form>

ADD_FORM_USER;


$FORMS['comments_block_add_guest'] = <<<ADD_FORM_GUEST

 <form method="post" action="%action%">

  <table cellspacing="5" cellpadding="0" border="0" width="100%">
    <tr>
     <td nowrap="nowrap">Заголовок комментария:<br />
      <input type="text" name="title" style="width: 350px;" class="textinputs" />
     </td>
    </tr>

    <tr>
     <td nowrap="nowrap">Ваш ник:<br />
      <input type="text" name="author_nick" style="width: 350px;" class="textinputs" />
     </td>
    </tr>

    <tr>
     <td nowrap="nowrap">Ваш e-mail:<br />
      <input type="text" name="author_email" style="width: 350px;" class="textinputs" />
     </td>
    </tr>

    <tr>
     <td nowrap="nowrap">Текст комментария:<br />
      <textarea name="comment" style="width: 350px;height:120px" class="textinputs"></textarea>
     </td>
    </tr>

    <tr>
     <td>
      %system captcha('default')%
     </td>
    </tr>

    <tr>
     <td>
      <input type="submit" value="Добавить комментарий" />
     </td>
    </tr>
  </table>

 </form>

ADD_FORM_GUEST;

?>