Перейти к содержимому

Блоги, форумы, опросы и медиабиблиотека в 1С-Битрикс

Четыре самостоятельных модуля старого поколения, которые до сих пор закрывают социальные функции сайта: блоги, форумы, опросы и медиабиблиотека. Главная их ценность сегодня - универсальные комментарии и отзывы к элементам инфоблоков.

Как это работает

Блоги устроены иерархией: группы блогов, блог, пост, комментарий. Есть существенное ограничение модели: один пользователь ведёт один блог.

Форумы - группы форумов, форум, тема, сообщение. На этом же модуле держатся не только настоящие форумы, но и универсальные комментарии и отзывы к элементам инфоблоков - это самый частый сценарий его использования на обычных сайтах.

Опросы и голосования - группа опросов, опрос, вопрос, ответ. Небольшая ловушка именования: сам модуль называется одним словом, а его публичные компоненты - другим.

Медиабиблиотека входит в состав модуля управления структурой и организована как тип коллекции, коллекция с иерархией и элементы. Отдельного устанавливаемого модуля для неё в актуальных сборках нет.

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

Примеры

1. Комментарии к элементу инфоблока

$APPLICATION->IncludeComponent('bitrix:forum.topic.reviews', '', [
'FORUM_ID' => $forumId,
'ELEMENT_ID' => $elementId,
'IBLOCK_ID' => $iblockId,
'URL_TEMPLATES_READ' => '',
'CACHE_TIME' => 3600,
]);

Это тот самый универсальный механизм: технически комментарии живут как тема форума, привязанная к элементу, а посетитель видит обычный блок отзывов под карточкой товара или статьёй.

2. Опрос на странице

$APPLICATION->IncludeComponent('bitrix:voting.current', '', [
'VOTE_ID' => $voteId,
'CACHE_TIME' => 3600,
]);

Есть также компоненты формы, результатов и списка опросов - их комбинируют в зависимости от сценария.

3. Работа из кода

Все четыре модуля предоставляют классы старого ядра с процедурным стилем: выборки через методы получения списка с последующим перебором результата, запись через методы добавления и обновления. Современного объектного API у них нет, поэтому код будет выглядеть как легаси - это нормально.

Справочник

МодульИерархияКомпоненты
Блогигруппы, блог, пост, комментарийкомпоненты блога; один пользователь - один блог
Форумыгруппы, форум, тема, сообщениефорум целиком и отзывы к элементам
Опросыгруппа, опрос, вопрос, ответтекущий опрос, форма, результаты, список
Медиабиблиотекатип коллекции, коллекция, элементв составе модуля управления структурой
СлойЧто настраивают
Настройки модуляправа, лимиты, модерация, фильтры, смайлы
Публичные компонентывывод на сайте
Классы старого ядрасерверный код

Частые ошибки

Ищут отдельный модуль медиабиблиотеки. Его нет - она часть модуля управления структурой.

Путают имя модуля опросов и его компонентов. Названия различаются, и поиск по имени модуля не находит нужный компонент.

Ждут от блогов нескольких блогов на пользователя. Модель этого не предусматривает.

Ставят комментарии, не подготовив форум. Отзывы к элементам технически существуют как темы форума - форум нужен, даже если посетитель его не видит.

Оставляют модерацию по умолчанию. Открытые комментарии и отзывы без модерации и фильтров быстро наполняются спамом.

Ждут D7-API. Эти модули процедурные, современного объектного интерфейса у них нет.

Частые вопросы

Как сделать отзывы к товарам?

Штатным способом - компонентом отзывов на модуле форума, привязанным к элементу инфоблока. Технически каждый набор отзывов существует как тема форума, но посетитель видит обычный блок комментариев под карточкой. Форум для этого нужен обязательно, даже если отдельного раздела форума на сайте нет.

Эти модули не устарели?

Они действительно старого поколения: процедурные классы, без объектного API, без ORM. Но они работают, поддерживаются и закрывают задачи, для которых иначе пришлось бы писать свой функционал: комментарии, отзывы, опросы. Разумный подход - использовать их там, где хватает штатных возможностей, и не пытаться строить на них сложные социальные сценарии.

Можно ли завести пользователю несколько блогов?

Нет, модель модуля предполагает один блог на пользователя. Если нужна другая структура - например, несколько авторских колонок или блоги от имени компании, - обычно проще реализовать это на инфоблоках с комментариями через форум, чем обходить ограничение модуля.

Что настроить в первую очередь после подключения комментариев?

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

Связанные темы

Первоисточники