Forum


Назначение

Организует постмодерируемый форум на сайте.

Ключи

source Строка, имя xml файла со структурой форума без расширения, лежащий в папке Content. Если ключ не задан или пустой, его значение принимается равным forum, а использоваться будет файл с данными Content/forum.xml.
design Строка, идентификатор дизайна (атрибут id тэга forumdesign), который должен использоваться при отрисовке форума на фронтзоне. Дизайн должен находиться в файле Templates/forum_design.xml.
userset Строка, определяет таблицу с пользователями которым можно отправлять сообщения в форум. Если ключ не задан форум открыт для всех.

При заданном ключе система вставляет вместо формы отправки сообщения макроподстановку $AuthBlock [source: "тут будет автоматически вставлена форма отправки сообщения"; userset: тут значение ключа userset; loginform: LoginForm]$, поэтому форма LoginForm должна быть сформирована в Templates по правилам для макроса $AuthBlock[]$.

showlastmessages Число, определяет количество последних сообщений, которые нужно вывести списком. Если ключ не задан - рисуется сам форум. Если задан, но в параметре передано не положительное целое число, а другая строка, то параметр принимает значение 3.
forumalias Строка, в режиме отображения последних сообщений определяет псевдоним страницы, на которой размещен сам форум. Ключ нужен для формирования ссылки вида /[forum]/?параметры для перехода с самих сообщений. Ключ игнорируется в режиме работы "показ форума". По умолчанию ключ принимает значение "forum".
themes_per_page Число, указывает по сколько тем на странице будет отрисовано при входе в раздел форума. По умолчанию 10.
messages_per_page Число, указывает по сколько сообщений на странице будет отрисовано при входе в тему форума. По умолчанию 10. Данный ключ присутствует только в версиях 4.46+, в предыдущих версиях постраничная разбивка на страницах сообщений не производится.

Комментарии

После инициализации макроподстановкой без параметров $Forum[]$ в теле страницы, форум работает полностью автоматически.

Для успешного запуска форума необходимо:

  • В папке Content иметь файл в котором хранится структура форума (по умолчанию forum.xml).
  • В папке Templates иметь файл forum_design.xml с дизайнами форума (как минимум с одним).
  • Для корректной работы блока цитирования необходимо в Templates иметь файл forum.js. При разработке не русскоязычных сайтов следует учесть, что в этом файле есть русские сообщения. Их нужно будет, соответственно, перевести.
  • Для того, чтобы пользователи форума, установившие чекбокс "оповещать меня если мне ответят" могли получить с сайта извещение, необходимо в файле preferences.xml определить тэг forum_newmessage_notification_for_user_label, в котором указать метку шаблона оповещений, используемого для отправки таких сообщений. Также, нужно в Data/email_notifications.dat иметь этот шаблон оповещений.
  • Аналогично, для того, чтобы новые сообщения пользователей производили отправку сообщений администратору форума необходимо в preferences.xml определить метку шаблона писем в тэге forum_newmessage_notification_label и иметь этот шаблон в таблице email_notifications.dat.
  • В файле common.css желательно определить стили для оформления форума в соответствии с дизайном разрабатываемого сайта. Имена классов можно получить просмотрев HTML код страниц на фронтзоне.

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

Дополнительная функциональность

Начиная с версии 4.39 макрос умеет выводить список последних сообщений на любой странице, например на главной. Для активации этого режима необходимо задать ключ showlastmessages. Перечень сообщений будет сформирован как последовательность тэгов DIV с текстом и ссылкой внутри каждого. У DIV будет прописан CSS класс, который можно задавать в common.css или в самой странице обычным образом. Между DIV будет вставлена строка, которую нужно определить в дизайне (forum_design.xml) в тэге lastmessages_delimiter. Обычно это тэг <BR> для переноса строк. По умолчанию разделитель не задан.

Макрос Forum использует системную таблицу blacklist.dat для фильтрации вводимой пользователями информации по нежелательным значениям. Подробнее о формате blacklist.dat смотрите на www.twl.ru/tsdn/file_formats/blacklist_dat.

Примеры

Пример №1
$Forum[]$

Пример №2
$Forum[source: forum; design: default]$ - полная форма вызова форума

Пример №3
$Forum[source: forum; design: default; userset: registers]$ - форум, закрытый от постинга незарегистрированными пользователями

Пример №4
$Forum[showlastmessages: 5]$ - показать 5 последних сообщений форума, сам форум не показывать