Предлагаю вашему вниманию написанный мной компонент «Древовидные комментарии». Позволяет добавить комментарии к любому элементу инфоблока. Это может быть пост в блоге, новость, товар и многое другое.
Возможности компонента можно оценить, посмотрев на его настройки. В двух словах, компонент позволяет править внешний вид (регулировать отступ комментариев, показывать аватар пользователя, показывать дату и общее количество комментариев). Специально для SEO-шников выделен отдельный блок настроек, в котором можно запретить индексацию комментариев, а также добавлять атрибут rel="nofollow" для ссылок.
Настройки компонента
Как пользоваться
Для начала нужно создать новый инфоблок «Комментарии». В нём обязательно должны быть заданы свойства с символьными кодами USER_ID, OBJECT_ID и COMMENT_ID. Нагляднее можно посмотреть на рисунке ниже.
Следующий шаг – подключение jQuery. Если на вашем сайте не подключен этот фреймворк, вы можете подключить его следующим образом:
<script type="text/javascript" src=http://code.jquery.com/jquery-1.4.2.min.js"></script>
После этого следует скопировать компонент в папку /bitrix/components/prmedia/. Вызывать компонент на страницах следует так:
<? $APPLICATION->IncludeComponent("prmedia:treelike_comments", ".default", array(
"OBJECT_ID" => $object_id,
"IBLOCK_TYPE" => "blog",
"COMMENTS_IBLOCK_ID" => "6",
"LEFT_MARGIN" => "50",
"SHOW_USERPIC" => "Y",
"SHOW_DATE" => "Y",
"SHOW_COUNT" => "Y",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600",
"NO_FOLLOW" => "N",
"NO_INDEX" => "N",
"NON_AUTHORIZED_USER_CAN_COMMENT" => "Y",
"USE_CAPTCHA" => "Y",
"AUTH_PATH" => "/auth/"
),
false
);?>
После этого в режиме разработки вы можете визуально изменять настройки компонента. В параметр «ID объекта комментирования» нужно передать ID новости, поста или товара, для которого вы хотите хотите добавить возможность комментрирования.
Скачать компонент (15 кб)Компонент находится в версии "Бета". Буду рад услышать ваше мнение, а также найденные баги.



Комментарии (46)
Сборка компонента сделана в кодировке utf8
тем кому надо в cp1251 можно скачать вот тут picom.su/treelike_comments.rar
перекодировал все файлы локализации + те, в которых есть русский текст
в районе строки №159
$res = CIBlockElement::GetList(array("ID" => "ASC"), $arFilter, false, array(), $arSelect);
изменил на:
$res = CIBlockElement::GetList(array("ID" => "ASC"), $arFilter, false, array("nPageSize"=>50), $arSelect);
1. Модерация, причем с премодерацией, через опцию в настройках компонента -
а.) Модератором конкретного объекта можно назначать, как конкретного пользователя, так и группу пользователей, администратор сайта по умолчанию может редактировать все. Можно еще в качестве параметра добавить, код пользовательского поля объекта USER и значение этого поля, для дополнительного разграничения прав доступа.
б.) Модерация может вестись из публичной части сайта, путем подсвечивания новых комментов с кнопками редактирования/удалением данного комментария. Ну и следовательно в случае включенной опции премодерации, пока не одобрено - данный коммент не показывать для всех пользователей.
2. Подписаться на ответ на свой комментарий по мылу.
3. Подписаться на дискусию по мылу.
4. При удалении комментария - все его потомки должны тоже удалиться из ИБ, но надо выдавать подтверждение удаления с соответствующим текстом.
5. Можно дополнительно записывать в ИБ IP-адрес комментатора.
6. Можно дополнительно записывать в ИБ URL страницы с которой создан комментарий.
7. Постраничную навигацию.
8. Возможность сворачивать у родителя всех его потомков через js.
9. Цитирование.
10. Возможность использования в качестве объектов комментирования не только элементы ИБ, но и статичные страницы, тогда в качестве ID объекта можно использовать значение $APPLICATION->GetCurDir();.
11. Ну и написать мастер для автоматического создания в системе типа ИБ, самого ИБ и всех необходимых свойств, создания пользовательского свойства для объейта USER, группы пользователей -модераторов, а также копирования компонента комментариев в кастомное пространство имен.
12. В будущем можно было б еще прикрутить фильтр нецензурных слов из модуля "Форум".
13. Ну и использование смайлов с того же модуля "Форум".
P.S. Я конечно понимаю, что описанный мной функционал по объему тянет уже скорей на отдельный модуль, но с другой стороны все это делается на ИБ, так что особого смылса в оформлении в отдельный модуль я не вижу. И кстати часть описанного функицонала уже реализовано если будет желание доделать, могу поделиться исходниками.
icq 478761132
<a href="http://narod.ru/disk/20339532001/treelike_comments.rar.html">treelike_comments.rar</a>
Оформил все в виде не зависимого от моего проекта компонента
2. Почему комментарии из одной новости высвечиваются в другой? и так везде где стоит древовидный комментарий.
Сделал все как по инструкции!
В ближайшее время будет выпущен полноценный модуль "Древовидные комментарии" с обновленным и улучшенным функционалом. Он будет доступен в MarketPlace.