<?=
$this->macros('comments', 'insert', array($page->getId()))
?>
Пример вызова
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>
Элементы и атрибуты
<item>
Элемент, описывающий отдельный комментарий. Содержимое элемента — текст комментария.
- @id
-
Идентификатор комментария.
- @title
-
Заголовок комментария.
- @author_id
-
Идентификатор пользователя, оставившего комментарий.
- @num
-
Порядковый номер комментария.
- @xlink:href
-
Ссылка UPage на комментарий.
- @xlink:author-href
-
Ссылка на автора: метод %users viewAuthor()%.
- @publish_time
-
Время публикации комментария в UNIX TIMESTAMP. Для конвертации можно воспользоваться %system convertDate()%.
Вывод списка комментариев осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, тогда для вывода будет использован шаблон по умолчанию — default.tpl
.
Используемые блоки шаблона
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 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> — %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;
?>
Название
%comments insert()% — Выводит список комментариев для страницы.
Параметры: comments insert( [element_id = 0, template = 'default', order = 0] )
- element_id
-
id страницы, для которой выводится список комментариев.
- template
-
Имя шаблона, по которому выводится список комментариев. В XSLT-шаблонизаторе игнорируется.
- order
-
Порядок вывода элементов. В качестве значения можно передать "1" (прямой порядок) или "0" (обратный порядок).