Битрикс. Комментарии к элементам инфоблока
24.07.2018
Теги: CMS • Битрикс • Инфоблок • Комментарии • Компонент • Форум • ЭлементИнфоблока
Пусть у нас есть некий инфоблок (блог, новости, статьи, товары, галерея). В публичной части сайта для показа списка элементов инфоблока и самих элементов используется комплексный компонент bitrix:news
. И мы хотим добавить возможность оставлять комментарии к элементам инфоблока.
По идее, для этого достаточно отметить checkbox «Разрешить отзывы» в настройках компонента bitrix:news
:
Но после этого получаем ошибку «Не указан форум для отзывов». При чем здесь форум, если речь идет о комментариях/отзывах — совершенно непонятно. Хорошо, тогда открываем файл, который отвечает за показ детальной страницы и видим, что за комментарии отвечает компонент bitrix:forum.topic.reviews
:
<?php /* * Файл local/templates/voguis_blog/components/bitrix/news/blog/detail.php */ ?> <!-- код пропущен --> <?php if ($arParams["USE_REVIEW"]=="Y" && IsModuleInstalled("forum") && $ElementID): ?> <hr /> <?php $APPLICATION->IncludeComponent( "bitrix:forum.topic.reviews", "", array( "CACHE_TYPE" => $arParams["CACHE_TYPE"], "CACHE_TIME" => $arParams["CACHE_TIME"], "MESSAGES_PER_PAGE" => $arParams["MESSAGES_PER_PAGE"], "USE_CAPTCHA" => $arParams["USE_CAPTCHA"], "PATH_TO_SMILE" => $arParams["PATH_TO_SMILE"], "FORUM_ID" => $arParams["FORUM_ID"], "URL_TEMPLATES_READ" => $arParams["URL_TEMPLATES_READ"], "SHOW_LINK_TO_FORUM" => $arParams["SHOW_LINK_TO_FORUM"], "DATE_TIME_FORMAT" => $arParams["DETAIL_ACTIVE_DATE_FORMAT"], "ELEMENT_ID" => $ElementID, "AJAX_POST" => $arParams["REVIEW_AJAX_POST"], "IBLOCK_ID" => $arParams["IBLOCK_ID"], "URL_TEMPLATES_DETAIL" => $arResult["FOLDER"].$arResult["URL_TEMPLATES"]["detail"], ), $component ); ?> <?php endif; ?>
Уже что-то проясняется. Открываем исходный код компонента bitrix:forum.topic.reviews
:
/* * Файл bitrix/components/bitrix/forum.topic.reviews/component.php */ if (!CModule::IncludeModule("forum")): ShowError(GetMessage("F_NO_MODULE")); return 0; elseif (!CModule::IncludeModule("iblock")): ShowError(GetMessage("F_NO_MODULE_IBLOCK")); return 0; elseif ($arParams["FORUM_ID"] <= 0): // вот это сообщение об ошибке: не указан ID форума ShowError(GetMessage("F_ERR_FID_EMPTY")); return 0; elseif ($arParams["ELEMENT_ID"] <= 0): ShowError(GetMessage("F_ERR_EID_EMPTY")); return 0; endif;
Чтобы оставлять сообщения на форуме, этот форум надо сперва создать. Так что идем в панель управления и создаем форум «Комментарии к постам блога»:
В настройках доступа надо разрешить всем пользователям создавать новую тему:
Потом выбираем этот форум в настройках компонента bitrix:news
:
После чего комментарии заработают:
bitrix:forum
. В настройках компонента, в параметре «Показывать только выбранные форумы», выбрать «Комментарии к постам блога».
Подводя итог — как и все в Битрикс, комментарии сделаны через ж… Это ж надо было додуматься — для комментариев нужен форум.
- Битрикс. Создание комплексного компонента. Часть 4 из 4
- Битрикс. Создание комплексного компонента. Часть 3 из 4
- Битрикс. Создание комплексного компонента. Часть 2 из 4
- Битрикс. Создание комплексного компонента. Часть 1 из 4
- Битрикс. Работа с инфоблоками в старом ядре
- Битрикс. Работа с инфоблоками в новом ядре
- Битрикс. Создание своего модуля. Часть 2 из 3
Поиск: CMS • Битрикс • Инфоблок • Комментарии • Компонент • Форум • Элемент инфоблока