Хак: добавление комментариев в ленту активности
Всем привет!
Решил выложить свою мини-доработку по добавлению комментария в ленту активности.
Лично по мне не удобно, что комментарии отображаются в отдельном виджете и их отсутствие в ленте активности делает ее уж больно сухой.
Делал давно для одного проекта, сейчас попросили сделать для другого, поэтому размещаю здесь, чтобы было легче искать! ))
В общем, от нас требуется 3 небольших действия:
1. Запрос в БД
INSERT INTO `cms_activity_types` (`is_enabled`, `controller`, `name`, `title`, `description`) VALUES (1, 'comments', 'add.comment', 'Добавление комментария', 'добавляет комментарий к %s');
Также, желательно, в таблице cms_activity поле subject_title сделать типом TEXT, чтобы комментарии не зарезались.
2. Редактируем файл /system/controllers/comments/actions/submit.php для добавления и обновления комментария в ленте
в блоке if ($action=='update'){ после строчки: $comment_html = $content_html; добавляем:
// обновляем запись в ленте активности
// Получаем модель целевого контроллера
$target_model = cmsCore::getModel( $target_controller );
// Получаем URL и заголовок комментируемой страницы
$target_info = $target_model->getTargetItemInfo($target_subject, $target_id);
if ($target_info){
cmsCore::getController('activity')->updateEntry('comments', "add.comment", $comment_id, array(
'user_id' => $user->id,
'subject_title' => '<a href="/'.$target_info['url']..'#comment_'.$comment_id'">'.$target_info['title'].'</a><p>'.$content_html.'</p>',
'subject_id' => $comment_id,
));
}
Подробнее