Представляю Вашему вниманию компонент для работы с древовидными комментариями к элементам инфоблоков. Для хранения информации будет использоваться модуль «Блоги», что позволит легко ее модерировать прямо из публичной части. Основой стал компонент photogallery.detail.comment, из которого удалено все ненужное, а также добавлена возможность работать с кодами секций и элементов в режиме ЧПУ.
Установка и настройка
Внизу страницы находится ссылка на архив с компонентом. Первым делом, его необходимо распаковать в директорию \bitrix\components\ сервера.
Следующим шагом будет настройка блогов в административной части. Их можно отыскать в разделе Сервисы — Блоги. Если такого раздела нет, то возможны 2 варианта — у Вас редакция «Старт» или не установлен модуль (Настройки — Настройки продукта — Модули).
Создаем новый блог:
Даем пользователям необходимые права:
Дальнейшие действия рассмотрим на примере комплексного компонента bitrix:news. Разместим и настроим его до рабочего состояния на произвольной странице сайта. Важно включить отзывы, остальные настройки этой группы не имеют значения.
Например, для режима ЧПУ с кодами секций и элементов настройки будут такими:
Теперь нужно скопировать шаблон компонента в шаблон сайта и применить его:
Последнее, что осталось сделать — это зайти в любую новость на сайте в режиме разработки, нажать на иконку компонента с подписью «Новости» и выбрать пункт «Редактировать шаблон компонента». Если все сделано правильно, откроется окно, аналогичное этому:
Заменяем кусок кода
<?if($arParams["USE_REVIEW"]=="Y" && IsModuleInstalled("forum") && $ElementID):?> <hr /> <?$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"], "ELEMENT_ID" => $ElementID, "IBLOCK_ID" => $arParams["IBLOCK_ID"], "POST_FIRST_MESSAGE" => $arParams["POST_FIRST_MESSAGE"], "URL_TEMPLATES_DETAIL" => $arParams["POST_FIRST_MESSAGE"]==="Y"? $arResult["FOLDER"].$arResult["URL_TEMPLATES"]["detail"] :"", ), $component );?> <?endif?>
на приведенный ниже
<?if($arParams["USE_REVIEW"]=="Y" && IsModuleInstalled("blog") && $ElementID):?> <hr /> <?$arCommentsParams = Array( "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"], "IBLOCK_ID" => $arParams["IBLOCK_ID"], "SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"], "PERMISSION" => $arResult["VARIABLES"]["PERMISSION"], "ELEMENT_ID" => $ElementID, "COMMENTS_TYPE" => "blog", "BEHAVIOUR" => "USER", "DETAIL_URL" => $arResult["FOLDER"].$arResult["URL_TEMPLATES"]["detail"], "PATH_TO_SMILE" => $arParams["PATH_TO_SMILE"], "CACHE_TYPE" => $arParams["CACHE_TYPE"], "CACHE_TIME" => $arParams["CACHE_TIME"] ); $arCommentsParams["BLOG_URL"] = "comments"; // !!! Сюда надо вписать "Название латинскими буквами", которое было указано при создании блога !!! $arCommentsParams["PATH_TO_USER"] = ""; $arCommentsParams["PATH_TO_BLOG"] = ""; $APPLICATION->IncludeComponent( "av:comment.multilevel", "", $arCommentsParams, $component, array("HIDE_ICONS" => "Y") ); ?> <?endif?>
После этих манипуляций у каждого элемента инфоблока должна появиться форма для комментирования в публичной части и 2 новых свойства элемента — id поста блога и количество комментариев.
Больше статей и материалов по web-разработке в tg-канале - подписывайтесь!
Подписаться в telegram
В итоге получаю надпись: ‘av:comment.multilevel’ is not a component
Все, заработало =)
Алексей, спасибо. Очень нужный компонент.
av:comment.multilevel’ is not a component
как побороть?
Поставил данный компонент, но есть одна проблема: когда оставляю комментарий — перекидывает со страницы товара на страницу http://teplo-hot.com.ua/catalog/products/
Если у вас есть возможность, посмотрите и скажите, в чем проблема и как её исправить?
На сайте используется ЧПУ.
Tepl, не знаю, такой проблемы раньше не встречал. Проверьте настройки, посмотрите action форм, найдите LocalRedirect который перекидывает..
Как распаковать компонент???я новичок((((((напишите поподробнее!!!
Спасибо
И что значит временное закрытие публичной части сайта???что надо сделать что бы открыть???
Когда не указываешь email не выдается ошибка
Спасибо большое!
Как раз нужны были древовидные комментарии, взял за основу ваши, чуть подправив. Все работает, все отлично.
После добавления комментария стал выдавать ошибку
Cannot redeclare function pclearcomponentcache() (previously declared in /bitrix/components/av/comment.multilevel/component.php:7). If this code worked without the Zend Optimizer+, please set zend_optimizerplus.dups_fix=1 in your ini file in /bitrix/modules/main/classes/general/module.php on line 220
Алексей, нужно удалить или закомментировать в component.php функцию pclearcomponentcache
День добрый.
От чего зависит декларирование функции pclearcomponentcache?
Получил: Cannot redeclare pclearcomponentcache() in /var/www/html/bitrix/modules/photogallery/include.php on line 263
Если комментирую функцию в компоненте, то ругается на вызов PClearComponentCache в компоненте (на то, что функция не описана).
Пока изменил название функции, на avPClearComponentCache, но это не лучший выход наверное.
ЗЫ: Спасибо за компонент.
Подскажите а как удалять не нужные коментарии
Я установил ваш модуль, все хорошо, вот только надпись «Добавить комментарий», и кнопки ответить, удалить и т д отображаются в кодировке UTF8 а весь сайт в Win1251, я 2 дня лазил по файлам и не мог найти где их изменить. Не подскажете?
Здравствуйте!
вроде все делаю как написано, только сайт выдает
Can not find ‘templete1’ template with page ‘news’
подскажите как исправить
‘av:comment.multilevel’ is not a component
вы файлы скопировали в «\bitrix\components\bitrix»
а пытаетесь открыть av
замените
$APPLICATION->IncludeComponent(«av:comment.multilevel»,
на
$APPLICATION->IncludeComponent(«bitrix:comment.multilevel»,
Добрый день Алексей. Помогите, не знаю как сделать. 1С Битрикс Экспер. Задача: Выводить последние комментарии к статьям в одном блоке. Все комментарии идут в форум в закрытый для пользователей раздел. Комментарии на форуме делятся по темам статей. Есть стандартный модуль 1С Битрикс, который выводит название тем к которым есть последние комментарии, НО задача состоит в другом — нужно выводить сами «отрывки» (текст!) комментариев и чтобы при клике шёл переход не в форум (закрытый), а на статью которая обсуждается.
Всю голову сломал! Много чего предпринимал… Пытался использовать стандартный модуль Блогов для вывода последних комментариев. Перед этим использовал Ваше описание выше, НО при клике по последним комментариям в уже Топике комментариев Блога, переход осуществлялся в никуда. Вот описание метода
Вообщем ни знаю что и делать! в 1С битриксе посылают …
Михаил, эта задача не решается без правки кода.
Суть в том, что форум ничего не знает о статье, к которой хранит комментарии. Т.е. связь «новость» => «тема форума» в одну сторону.
Можно попробовать такой алгоритм:
— использовать компонент, который выводит последние темы или сообщения из форума
— в кэшируемой области (result_modifier.php шаблона например) получить все новости, которые через свойство наподобие FORUM_TOPIC_ID привязаны к выбранным темам форума
— вывести все данные в нужном виде
Добрый день,
на этапе «скопировать шаблон компонента в шаблон сайта и применить его»
После применения копии шаблона на странице появляется ошибка:
Can not find ‘news1′ template with page ‘news’
подскажите пожалуйста, как справиться с ‘av:comment.multilevel’ is not a component
простите, я тупицца, выше уже отвечали на мой вопрос…
Добрый день.
А у этого метода есть уведомления по емелу о новых комментариях ?
Добрый день.
Данный компонент поддерживается последней версией Битрикс?
Попытка установить закончилась ошибкой.
Все добавляется, но как-то криво работает….при добавлении комментария почему-то надо заходить в «комментарии» на блоге и нажимать «показать», хотя они опубликованы уже..также, комментарии не появляются сразу же после добавления, надо делать вышеуказанные действия..
Еще: при обновлении страницы пропадают все комментарии!!!!!!!! Хотя в административной части все есть…
Легче сделать все это с форумом и закрыть его от индексации..
Компонент не тестировался на последних версиях битрикса.
Можно ли задействовать премодерацию комментариев ?
При удалении комментария из админки — поле количество комментариев не уменьшается
Где редактировать шаблон вывода комментариев? (Мне нужно добавить некий текст непосредственно перед выводом комментариев, имитируя эти самые комментарии, и может быть даже между комментариев).
Андрей, добрый день!
В компоненте для вывода комментариев используется стандартный компонент bitrix:blog.post.comment. Соответственно, самый простой путь — скопировать .default шаблон этого компонента в свой шаблон сайта и отредактировать. Или поменять название в шаблоне моего компонента.
Спасибо, разобрался)
Добрый день! Я только начинаю осваивать вёрстку, подскажите пожалуйста как исправить проблему:
Раздел новости. сначала выводится картинка, затем идёт текст.
Текст отображается криво: справа дубль заголовка (где убрать не пойму) а слева текст узким столбиком. (Как будто разбит на два столбца, есл,и конечно, сравнение с вордом уместно в данном случае)
«Добрый день,
на этапе «скопировать шаблон компонента в шаблон сайта и применить его»
После применения копии шаблона на странице появляется ошибка:
Can not find ‘news1′ template with page ‘news’»
Ребяяятки, Кто нибудь знает как это лечится? Та же самая проблема
как добавить в компонент bitrix:catalog????
Алексей, подскажите, пожалуйста, как настроить внешний вид компонента?