diverse-people-showing-speech-bubble-symbols-5

3 октября 2019 1С-Битрикс

Стандартно в комплексных компонентах битрикса используется компонент forum.topic.reviews, который не предусматривает древовидных ответов на комментарии, как например в соц. сетях.

Получилось реализовать такой функционал стандартными средствами битрикса, с помощью другого компонента blog.post.comment — комментарии к сообщению блога, который входит в состав photogallery.detail.comment — комментарии к фотографиям.

Решение задачи простое, надо просто заменить код вывода forum.topic.reviews на photogallery.detail.comment. Мне это необходимо было сделать в комплексном компоненте news в детальной новости. Но для начала нужно создать блог.

Идем в Рабочий стол → Сервисы → Блоги → Блоги и добавляем новый блог. Важно заполнить Название, название латинскими буквами, включить комментарии и дать доступ на чтение и комментарии всем посетителям. У меня получилось примерно следующее:

bitrix_comments1-1113182 bitrix_comments2-2095270

Идем в /bitrix/templates/название_шаблона/components/bitrix/news/шаблон_компонента/detail.php, находим код forum.topic.reviews и меняем на:

 

Итак, что тут у нас. IBLOCK_TYPE и IBLOCK_ID соответственно тип и ID инфоблока с новостями, "COMMENTS_TYPE" => "blog" — тип комментариев — блог, "BLOG_URL" => "news" это название блога на латинице, которое указывалось при создании. Ну и самый важный параметр это ID новости "ELEMENT_ID" => $arResult["VARIABLES"]["ELEMENT_ID"] — в детальной новости detail.php, он передается в значении $arResult["VARIABLES"]["ELEMENT_ID"].

Ну и я сделал отдельный шаблон comments для компонента так как надо было модернизировать его внешний вид. Папка со смайлами указывается в параметрах компоненты. У меня это работало в старой версии, но после обновления пришлось изменить вывод вручную в коде самого компонента комментариев. И вот что получилось:

bitrix_comments3-2797336