MODx/Встроенные сниппеты/UserComments

Информация править

Последняя версия: 1.0 Beta

Автор: Raymond Irving, July 2005

Назначение: Предоставляет возможность посетителям комментировать документ.

Действие: Все комментарии посетителей будут сохранены в дочернем документе указанной папки (по-умолчанию в комментируемом документе).

Замечание: Если вы используете сниппет NewsListing и не указали в шаблоне вызов сниппета UserComments убедитесь что вы поместили вызов UserComments внутрь чанка для того чтобы комментарии могли быть корректно отфильтрованы сниппетом NewsListing.

Параметры править

  • &displaytpl - шаблон для комментариев (имя чанка)
  • &formtpl - шаблон для формы отправки комментариев (имя чанка)
  • &canpost - перечисленные через запятую имена веб-групп посетителей, которые могут комментировать документ. Оставьте это параметр незаполненным, чтобы позволить всем посетителям оставлять комментарии.
  • &canview - перечисленные через запятую имена веб-групп посетителей, которые могут просматривать комментарии. Оставьте это параметр незаполненным, чтобы позволить всем посетителям просматривать комментарии.
  • &badwords - перечисленные через запятую слова которые не должны быть в сообщении (фильтр "плохих" слов)
  • &makefolder - если этот параметр равен 1, тогда комментируемый документ будет автоматически преобразован в папку, в которой будут храниться комментарии. По умолчанию равно 0
  • &folder - идентификатор (id) папки, в которой будут сохраняться комментарии
  • &tagid - a unique id used to identify or tag user comments on a page where multiple comments are required.
  • &freeform - установите этот параметр равным 1, если хотите использовать подстановщик [+UserComments.Form+] для создания своей формы отправки комментария.
  • &postcss - задает имя CSS-класса для DIV-блока содержащего комментарий
  • &titlecss - задает имя CSS-класса для DIV-блока содержащего заголовок комментария
  • &codecss - задает имя CSS-класса для форматирования тэга
  • &numbecss - задает имя CSS-класса для DIV-блока содержащего номер комментария
  • &authorcss - задает имя CSS-класса для выделения комментариев автора документа
  • &ownercss - задает имя CSS-класса для выделения собственных комментариев текущего посетителя
  • &altrowcss - задает имя CSS-класса для выделения чередующихся комментариев
  • &dateformat - определяет формат даты для комментария. Синтаксис идентичен php функции date() (подробнее о форматировании даты на странице http://php.net/strftime )
  • &sortorder - определяет порядок следования комментариев: 0 - первыми выводятся более ранние комментарии, 1 - новые комментарии выводятся раньше. значение по умолчанию 1.
  • &recentposts - определяет количество комментариев для отображения. Если параметр равен 0, показываются все комментарии. Значение по умолчанию 0.

Примеры вызовов править

[[UserComments? &folder=`2`]]
[!UserComments? &folder=`2`!]
[[UserComments? &folder=`2` &canpost=`RegisteredUsers`]]

Тонкая настройка править

Для отображения общего количества оставленных комментариев используйте подстановщик [+UserComments.Count+] на той же странице где вызываете сниппет.

Создание собственных шаблонов править

Для создания своих шаблонов вам потребуется базовое знание о том, как работает HTML.

Шаблон для комментариев заданный по умолчанию (&displaytpl):: (Используется PHx плагин - стандартный только для Modx Revo, для Evo версии придется скачивать из репозитария modxcms.com) править

[+UID:[+uid+]+]<div[+postclass+]> <div[+numberclass+]> [+postnumber+] </div> <div[+titleclass+]> <strong>[+subject+]</strong><span>[+user+] [+createdon+]</span> </div> <div class="content"> [+comment+] </div> </div>

Шаблон для формы отправки комментария (&formTpl) править

<form method="post" action="[~[id]~]"> <input name="[+tagname+]" type="hidden" value="on" /> Subject:<br /><input name="subject" type="text" size="40" value="" /><br /> Comment:<br /><textarea name="comment" cols="50" rows="8"></textarea><br /> <input name="send" type="submit" value="Submit" /> < /form>

Здесь значения из полей “subject” и “comment” будут подставлены вместо [+subject+] и [+comment+] соответственно в шаблоне для отображения комментария.

Изменение набора полей править

Вы можете добавлять новые поля к форме отправки комментария и места для подстановки в шаблоне отображения комментария используя подстановщик формата [+ИмяНовгоПоля+].

Например, мы хотим добавить к форме отправки комментария поле содержащее электронный адрес посетителя. Для этого нам надо добавить в шаблон формы отправки следующий код:

<input name=“email” type=“text” size=“30” />

Внутри нашего шаблона для отображения комментариев нам надо поместить плейсхолдер [+email+] там, где мы хотим выводить электронный адрес посетителя оставившего комментарий. Например, так:

Posted by [+email+]

Замечание: подстановщики [+user+], [+createdon+], [+postnumber+], [+UID:[+uid+]+], [+authorclass+] и [+altrowclass+] являются встроенными, система сама заменит их на имя текущего авторизованного пользователя, дату добавления комментария, номер комментария, идентификатор пользователя и т.д.