Skip to main content

Комментарии с ответами в битрикс

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

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

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

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

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

<?$APPLICATION->IncludeComponent(
	"bitrix:photogallery.detail.comment", 
	"comments", 
	array(
		"IBLOCK_TYPE" => "main",
		"IBLOCK_ID" => "1",
		"ELEMENT_ID" => $arResult["VARIABLES"]["ELEMENT_ID"],
		"DETAIL_URL" => "/news/#ELEMENT_ID#/",
		"CACHE_TYPE" => "N",
		"CACHE_TIME" => "3600",
		"COMMENTS_TYPE" => "blog",
		"COMMENTS_COUNT" => "50",
		"BLOG_URL" => "news",
		"PATH_TO_SMILE" => "/bitrix/images/blog/smiles/",
		"PATH_TO_USER" => "",
		"PATH_TO_BLOG" => "",
		"COMPONENT_TEMPLATE" => "comments",
		"COMPOSITE_FRAME_MODE" => "A",
		"COMPOSITE_FRAME_TYPE" => "AUTO"
	),
	false
);?> 

Итак, что тут у нас. 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 для компонента так как надо было модернизировать его внешний вид. Папка со смайлами указывается в параметрах компоненты. У меня это работало в старой версии, но после обновления пришлось изменить вывод вручную в коде самого компонента комментариев. И вот что получилось:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

code