Онлайн-руководство разработчика NetCat
Новогодние скидки до 25%!
Подробнее
Модуль «Поиск по сайту» 12.2.1Начало работы с модулем 12.2.2Язык запросов 12.2.3Способы хранения индекса 12.2.4Интерфейс модуля в панели управления сайтом 12.2.5Области индексирования 12.2.6Области HTML-страниц 12.2.7Области поиска на сайте 12.2.8Индексирование по расписанию, запуск индексирования в фоновом режиме 12.2.9Правила индексирования 12.2.10Постановка задачи переиндексирования в очередь 12.2.11Интеграция модуля в макеты дизайна сайта 12.2.12Простая форма поиска 12.2.13Расширенная форма поиска 12.2.14Вывод результатов поиска 12.2.15Стилизация списка подсказок 12.2.16Расширенные настройки 12.2.17Разработка расширений модуля 12.2.18Обзор архитектуры модуля 12.2.19Обработчики документов различных типов 12.2.20Текстовые фильтры 12.2.21Анализаторы текста 12.2.22Корректировщики запросов 12.2.23Подключение других поисковых систем 12.2.24Решение проблем с поиском 12.2.25Решение проблем с индексированием 12.2.26Справочник API

Модуль «Форум»

Функционал форума основан на базовом функционале системы. Это подразумевает, что ввод и вывод данных осуществляется посредством компонентов форума, в которых и находится основная часть кода. Макеты дизайна системы не требуют никаких доработок для обеспечивания нормального функционирования форума. Дополнительные расширения форума в макетах (вывод списка последних сообщений, количества форумов и т.п.) добавляются как обычные компонентные расширения.

Такой подход позволяет максимально гибко настраивать форум без изменения ядра системы и файлов модуля. Все основные запросы к БД (базе данных) находятся в системных настройках компонентов, что даёт возможность расширять их и оптимизировать под конкретные задачи проекта. Нет никаких ограничений на изменение внешнего вида форума.

Для повышения производительности в БД находится несколько таблиц, которые хранят информацию о категориях и разделах форума, количестве топиков и ответов, просмотров на них и т.п. Данные попадают в эти таблицы при трансляции системных событий, которые затрагивают функционал форума. Например, при добавлении сообщения (стандартный функционал системы) в раздел форума обновляется информация в БД о количестве сообщений на форуме.

Для упрощения работы с данными из БД в модуле предусмотрен определённый набор функционала, о котором будет рассказано ниже.

Подключение функционала форума

Для того чтобы на сайте появился новый форум, следует выполнить несколько несложных действий. Основное действие — это добавление корневого раздела форумов (раздел в котором находятся все форумы, и таких разделов может быть несколько). Корневой раздел форумов может так же называться родительским или корневым форумом, все эти определения синонимичны.

Чтобы создать новый корневой раздел форумов, достаточно в административной панели системы добавить новый раздел и подключить к нему компонент «Список форумов». Стоит заметить, что в этом случае параметр TRACKING_MODE в настройках модуля не должен быть равен 0, подробности в разделе «Константы модуля». После этого, система автоматически идентифицирует этот раздел, как относящийся к модулю «Форум». Если требуется создать трансляцию списка форумов в данном разделе посредством RSS, это сделать весьма несложно. Достаточно в созданный раздел добавить ещё один компонент «Список форумов», указав при этом, что для отображения следует использовать шаблон компонента «RSS».

Следует отметить, что функционал форума не поддерживает модуль "Кэширование". Отображение многих данных зависит от привилегий пользователя (ссылки на редактирование сообщений, назначение прав пользователям и т.п.). Ко всему прочему, издержки на поддержание актуальности кэша столь динамичного контента слишком велики.

Далее можно приступить непосредственно к добавлению форумов в раздел. Сделать это можно как минимум двумя разными способами:

  • Зайти на сайт (front-office), найти раздел форум и нажать на ссылку "Добавить форум" (при условии достаточных прав — администратор корневого раздела, отобразится форма добавления). В появившейся форме нужно ввести информацию о новом форуме.

  • В административной панели системы следует добавить новый подраздел в корневой раздел форумов. Далее следует подключить к разделу сначала компонент «Топики», а затем компонент «Ответы». Присвоив каждому легкоидентифицируемые ключевые слова, например, topic и reply, соответственно. Стоит заметить, что в этом случае параметр TRACKING_MODE в настройках модуля не должен быть равен 0, подробности в разделе «Константы модуля». Система автоматически идентифицирует этот раздел как относящийся к модулю «Форум».

Описанных действий достаточно для начала работы форума.

Разграничение прав

Права на разделы форума назначаются и учитываются так же, как и на любые другие разделы системы. Если установить право на чтение раздела конкретного форума под названием «Зарегистрированные», то содержимое раздела смогут увидеть только зарегистрированные пользователи. Описаное актуально и для компонентов в разделе.

В каждом форуме можно также указать, кто может добавлять топики «Важное», «Объявление», а так же закрывать и открывать топики. Для этого следует выбрать раздел форума в карте сайта, перейти к списку используемых компонентов, выбрать настройки компонента в разделе «Топики» (название может отличаться, если при создании было указано другое) и перейти к «Визуальным настройкам компонента». Далее из списка следует выбрать желаемое значение.

Может возникнуть ситуация, когда наряду с обычными форумами в разделе подразумевается наличие форума, который могут видеть только определённые пользователи. Список форумов формируется запросом к БД MySQL в компоненте «Список форумов», можно модифицировать этот запрос, но это замедлит формирование списка. Альтернатива данному способу — создать отдельный раздел с форумами, которые будут видны определённым пользователям или группам пользователей.

Список сообщений пользователя

Для подключения этого функционала необходимо создать в личном кабинете соответствующий раздел и добавить в него компонент "Форум v2: Для личного кабинета". В настройках модуля личный кабинет(системные) необходимо выбрать этот раздел в настройке "Раздел с материалами пользователя"

Функции модуля

Функционал модуля выполнен в объектно-ориентированном стиле. В форуме присутствуют 4 основные сущности, которые связаны с компонентами форума:

  • Объект списка форумов. По сути, это объект управления корневыми разделами форумов. Связанный компонент: "Список форумов".

  • Объект форумов. Содержит в себе методы для получения информации о форумах, а также методы модификации этой информации. Связанный компонент: "Топики". Данный компонент даёт понять системе, что раздел относится к модулю "Форум", поэтому он и связан с этим объектом и объектом топиков.

  • Объект топиков. Содержит в себе методы для получения информации о топиках, а также методы модификации данной информации. Связанный компонент: "Топики".

  • Объект ответов. Содержит в себе методы для получения информации об ответах на топики, а также методы модификации данной информации. Связанный компонент: "Ответы".

Ниже приведён список доступных методов для каждого объекта. Все описанные методы относятся к публичному уровню доступа (public).

Далее в разделе

Описание проекта