Система управления сайтом 1С-Битрикс предоставляет несколько способов внедрения блока отзывов к статьям: через стандартный компонент «Форум», модуль «Комментарии» или пользовательские решения на основе инфоблоков. Выбор зависит от структуры сайта, требований к функциональности и необходимого уровня кастомизации.
Для реализации отзывов с использованием встроенных компонентов достаточно подключить компонент «bitrix:forum.topic.reviews» или «bitrix:catalog.comments», если статьи размещены в инфоблоке. Важно убедиться, что нужные модули активированы в административной панели: «Форум» и «Социальная сеть», если требуется авторизация пользователей.
Настройка включает указание идентификатора элемента статьи, выбор шаблона отображения, настройку CAPTCHA и прав доступа. Чтобы привязать комментарии к конкретной статье, используется параметр ELEMENT_ID – его необходимо передавать динамически через шаблон компонента или вручную в настройках вызова.
Если требуется более гибкий функционал – например, AJAX-подгрузка, рейтинг или модерируемые отзывы – рационально создать собственный компонент на базе инфоблока. В этом случае каждый отзыв сохраняется как элемент с привязкой по ID статьи и может быть выведен через bitrix:news.list с соответствующим фильтром.
Для управления отзывами из административной части рекомендуется создать отдельный тип инфоблока с пользовательскими свойствами: имя, текст комментария, дата, одобрение модератором. Это упрощает проверку и публикацию отзывов, особенно при высокой активности пользователей.
Подключение модуля «Форум» для хранения отзывов
Для организации системы отзывов на сайте, построенном на 1С-Битрикс, целесообразно использовать модуль «Форум». Он обеспечивает удобное хранение и управление комментариями, включая функционал модерирования и уведомлений.
Шаг 1. Установка модуля: перейдите в административную панель, раздел Marketplace > Установленные решения, найдите модуль «Форум» и нажмите кнопку установки. Если модуль уже установлен, этот шаг можно пропустить.
Шаг 2. Создание форума для отзывов: в разделе Настройки > Модули > Форум > Форумы добавьте новый форум. Задайте понятное название, например, «Отзывы к статьям», укажите символьный код и настройте параметры доступа – разрешите комментирование для зарегистрированных пользователей или по необходимости для гостей.
Шаг 3. Настройка разделов: при необходимости создайте отдельные разделы форума, чтобы структурировать отзывы по категориям или темам, например, по разделам сайта или типам статей.
Рекомендации: проверьте параметры безопасности – настройте капчу для предотвращения спама и ограничьте права модераторов. Регулярно обновляйте модуль для получения последних исправлений и улучшений.
Настройка инфоблока с типом контента «Статьи»
Для создания инфоблока с типом «Статьи» в Битрикс необходимо зайти в административную панель и выбрать раздел «Контент» → «Типы инфоблоков». Создайте новый тип, указав уникальный символьный код, например, «articles». В параметрах укажите название на русском языке и отключите поддержку разделов, если планируется простая структура без вложенных категорий.
Далее перейдите в «Инфоблоки» и создайте новый инфоблок, связанный с типом «Статьи». Укажите название, например, «Публикации», и выберите соответствующий сайт, если система мультирегиональная. В настройках инфоблока установите включение элементов по умолчанию, активируйте управление версиями, чтобы обеспечить контроль изменений статей.
Обязательные свойства инфоблока должны включать «Заголовок», «Дата публикации», «Автор» и «Анонс». Для добавления отзывов под статьями создайте отдельное пользовательское свойство типа «Связь с элементами» или настройте отдельный инфоблок «Отзывы» с привязкой по ID статьи. В последнем случае рекомендуется реализовать связь через API или компоненты для корректного отображения отзывов.
Создание свойства элемента инфоблока для привязки отзывов
Для хранения привязки отзывов к статье необходимо добавить в инфоблок свойство типа Привязка к элементам. Это свойство будет указывать на отзывы, хранящиеся в отдельном инфоблоке отзывов.
В административной панели Битрикс перейдите в раздел Контент – Инфоблоки – Типы инфоблоков, выберите нужный инфоблок с статьями и перейдите в Свойства. Нажмите Добавить свойство.
В поле Тип свойства выберите Привязка к элементам. В настройках свойства укажите инфоблок с отзывами, к элементам которого будет производиться привязка. Это позволит выбрать из списка отзывов конкретные записи.
Установите флаг Множественное, если предполагается привязка нескольких отзывов к одной статье. Это позволит расширять список связанных отзывов без ограничений.
В поле Код свойства укажите уникальный идентификатор, например, REVIEWS. Это упростит последующее программное обращение к свойству через API и в компонентах.
После сохранения свойства оно станет доступным в элементах инфоблока статей. При редактировании статьи появится возможность выбрать или добавить отзывы из соответствующего инфоблока.
Далее нужно настроить компонент отзывов так, чтобы он фильтровал записи по этому ID, связывая отзывы с конкретной статьей. В настройках компонента укажите ID форума или инфоблока с отзывами, а также задайте фильтр по свойству или полю, отвечающему за связь с статьей.
Важно обеспечить защиту от спама и корректную валидацию формы добавления отзывов, используя стандартные средства Битрикса – CAPTCHA и проверку пользовательских прав. Для повышения производительности рекомендуется кэшировать блок с отзывами и сбрасывать кэш при добавлении новых комментариев.
В итоге пользователи увидят список актуальных отзывов, привязанных к статье, что повысит доверие и вовлечённость аудитории.
Добавление формы отправки нового отзыва
Для создания формы отправки нового отзыва в Битрикс рекомендуем использовать компонент bitrix:main.feedback
с кастомизацией полей. В административной панели перейдите в раздел «Компоненты» и выберите bitrix:main.feedback
. В настройках задайте уникальные идентификаторы полей, например: «NAME» – имя пользователя, «EMAIL» – email, «MESSAGE» – текст отзыва.
Чтобы добавить проверку заполнения обязательных полей, используйте параметр REQUIRED_FIELDS
и укажите массив с именами полей, например: array("NAME", "MESSAGE")
. Для защиты от спама включите CAPTCHA через параметр USE_CAPTCHA
с значением «Y».
Для сохранения отзывов создайте инфоблок с типом «Отзывы». В обработчике формы реализуйте добавление новой записи в инфоблок с передачей данных из полей формы. Это можно сделать через событие OnAfterUserSendMessage
или собственный обработчик.
Пример минимальной формы:
Рекомендуется добавлять клиентскую валидацию на JavaScript и серверную проверку для надежности. После успешной отправки выведите уведомление об успешном добавлении отзыва и очистите форму.
Модерация и отображение только одобренных отзывов
Для предотвращения публикации спама и некачественного контента в системе отзывов на Битрикс необходимо реализовать этап модерации. Только после проверки администратором отзыв получает статус «одобрен» и становится видимым на сайте.
- Создайте в инфоблоке или компоненте дополнительное свойство, например
STATUS
илиAPPROVED
, с булевым или строковым значением для хранения статуса модерации. - При добавлении отзыва присваивайте ему статус «ожидание» (например,
APPROVED = N
), чтобы сразу исключить автоматическое отображение. - Реализуйте административный интерфейс для просмотра новых отзывов и изменения их статуса на «одобрен» (например,
APPROVED = Y
). - Используйте стандартные средства Битрикс, такие как
CIBlockElement::GetList
с параметромFILTER
, либо настройте фильтр в компонентеbitrix:news.list
через параметрFILTER_NAME
.
Дополнительно рекомендуется автоматизировать уведомления модератора о новых отзывах через события или почтовые шаблоны, чтобы ускорить процесс одобрения. Для повышения качества контроля можно внедрить проверку по стоп-словам или CAPTCHA при добавлении отзыва.
Итоговая схема:
- Пользователь оставляет отзыв с статусом «ожидание».
- Модератор получает уведомление и проверяет отзыв в административной панели.
- После проверки отзыв переводится в статус «одобрен».
Такой подход гарантирует контроль качества и исключает появление нежелательного контента в публичном доступе.
Настройка AJAX-отправки формы без перезагрузки страницы
Создайте HTML-форму с уникальным идентификатором. Убедитесь, что у каждого поля формы указаны атрибуты name
, соответствующие ключам, которые будут обрабатываться на сервере.
Подключите jQuery или используйте нативный JavaScript. Ниже пример с использованием jQuery:
<script>
$(document).ready(function() {
$('#review-form').on('submit', function(e) {
e.preventDefault();
$.ajax({
url: '/ajax/add_review.php',
type: 'POST',
data: $(this).serialize(),
success: function(response) {
$('#form-response').html(response);
$('#review-form')[0].reset();
},
error: function(xhr) {
$('#form-response').html('Ошибка: ' + xhr.status);
}
});
});
});
</script>
Создайте файл /ajax/add_review.php
. Подключите пролог Битрикс:
<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = htmlspecialchars($_POST['name']);
$message = htmlspecialchars($_POST['message']);
if (!empty($name) && !empty($message)) {
$el = new CIBlockElement;
$arFields = [
"IBLOCK_ID" => 5, // ID инфоблока с отзывами
"NAME" => $name,
"PREVIEW_TEXT" => $message,
"ACTIVE" => "Y"
];
if ($el->Add($arFields)) {
echo "Отзыв добавлен";
} else {
echo "Ошибка сохранения";
}
} else {
echo "Заполните все поля";
}
}
?>
<form id="review-form">
<input type="text" name="name" placeholder="Ваше имя" required>
<textarea name="message" placeholder="Отзыв" required></textarea>
<button type="submit">Отправить</button>
</form>
<div id="form-response"></div>
Убедитесь, что в настройках инфоблока разрешено добавление элементов через API. Проверьте наличие прав на добавление у неавторизованных пользователей, если форма доступна публично.
Добавление капчи и ограничений для защиты от спама
Для минимизации автоматических спам-отзывов в Битрикс необходимо внедрить защитные механизмы. Один из эффективных способов – использование капчи и ограничений на отправку формы.
- Включите стандартную капчу Битрикс. В настройках компонента form.result.new установите параметр USE_CAPTCHA в значение Y. Убедитесь, что для неавторизованных пользователей капча активна.
- Для интеграции Google reCAPTCHA v2 или v3 подключите модуль main, добавьте ключи в настройки сайта: Настройки → Настройки продукта → Интеграции → Google reCAPTCHA. Обновите шаблон формы, добавив код reCAPTCHA перед кнопкой отправки.
- Ограничьте частоту отправки отзывов. В скрипте обработки данных проверьте временной интервал последней активности пользователя, используя сессию или запись в базу. Например, запретите повторную отправку в течение 300 секунд.
- Фильтруйте содержание отзыва. Добавьте серверную валидацию: запрет на повторяющиеся символы, ссылки, ключевые слова («http», «casino» и т.п.). Используйте регулярные выражения для проверки.
- Установите лимит длины отзыва, например, от 20 до 1000 символов. Это помогает отсечь как бессмысленные сообщения, так и подозрительно длинные тексты.
- Занесите IP-адреса, замеченные в массовом спаме, в черный список через настройки веб-фильтра или .htaccess.
Эти меры в совокупности значительно снижают риск автоматических публикаций, сохраняя легкость отправки для реальных пользователей.
Вопрос-ответ:
Можно ли добавить форму для отзывов без программирования, только с помощью стандартных компонентов Битрикс?
Да, это возможно. В редакциях «Старт» и выше в Битрикс есть встроенные компоненты, с помощью которых можно реализовать простую форму обратной связи или комментариев. Например, можно использовать компонент «Форма» или «Форум» в связке со статьями. Для привязки формы к конкретной статье потребуется немного настроек, но писать код не обязательно. Однако для более гибкой логики или отображения без доработки шаблонов не обойтись.
Как связать отзывы с конкретной статьёй, чтобы не смешивались комментарии к разным материалам?
Для того чтобы отзывы отображались только на той статье, к которой они относятся, нужно организовать их привязку по уникальному идентификатору материала. В стандартном компоненте «Комментарии» (например, на базе модуля форума или блогов) можно указать параметр `ENTITY_ID` — это идентификатор, по которому система будет отличать одну статью от другой. Обычно используют `ELEMENT_ID` инфоблока. Таким образом, каждый набор отзывов будет принадлежать своей статье и не будет пересекаться с другими.
Какие модули Битрикс нужно подключить, чтобы реализовать систему отзывов на сайте?
Для создания отзывов к статьям чаще всего используют один из следующих модулей: «Форум», «Блоги» или «Комментарии». В зависимости от выбранного компонента могут потребоваться разные модули. Например, для компонента на базе форума нужен модуль «Форум», а для компонента комментариев через соцсети — модуль «Социальные сервисы». Также понадобится модуль «Инфоблоки», если статьи хранятся там. Желательно активировать «Пользователи» и «Авторизацию», если требуется, чтобы только зарегистрированные пользователи оставляли отзывы.
Можно ли модерировать отзывы перед публикацией, и как это настроить?
Да, Битрикс позволяет включить предварительную модерацию. Это зависит от используемого компонента. Например, в компоненте на основе форума можно задать правило, по которому новые сообщения будут попадать в очередь на проверку модератором. Для этого нужно в настройках форума включить опцию «Предмодерация». Аналогично, если используется компонент комментариев на базе блогов, там тоже можно активировать функцию предварительной проверки. Модератору будут приходить уведомления о новых сообщениях, и он сможет одобрить или отклонить каждый отзыв вручную.