Организует постмодерируемый форум на сайте.
| 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 последних сообщений форума, сам форум не показывать