Всем привет!
Решил выложить свою мини-доработку по добавлению комментария в ленту активности.
Лично по мне не удобно, что комментарии отображаются в отдельном виджете и их отсутствие в ленте активности делает ее уж больно сухой.
Делал давно для одного проекта, сейчас попросили сделать для другого, поэтому размещаю здесь, чтобы было легче искать! ))
В общем, от нас требуется 3 небольших действия:
1. Запрос в БД
Также, желательно, в таблице cms_activity поле subject_title сделать типом TEXT, чтобы комментарии не зарезались.
2. Редактируем файл /system/controllers/comments/actions/submit.php для добавления и обновления комментария в ленте
в блоке if ($action=='update'){ после строчки: $comment_html = $content_html; добавляем:
и в блоке if ($action=='add'){ после строки $comment_id = $this->model->addComment(cmsEventsManager::hook('comment_before_add', $comment));
добавляем:
3. Редактируем файл /system/controllers/comments/actions/delete.php для удаления записи из ленты при удалении комментария
после строки: $this->model->deleteComment($comment['id'], (!$is_comment_child && cmsUser::isAllowed('comments', 'delete', 'full_delete', true)));
добавляем:
Если что-то забыл, то допишу! Всех хорошего дня!
Решил выложить свою мини-доработку по добавлению комментария в ленту активности.
Лично по мне не удобно, что комментарии отображаются в отдельном виджете и их отсутствие в ленте активности делает ее уж больно сухой.
Делал давно для одного проекта, сейчас попросили сделать для другого, поэтому размещаю здесь, чтобы было легче искать! ))
В общем, от нас требуется 3 небольших действия:
1. Запрос в БД
INSERT INTO `cms_activity_types` (`is_enabled`, `controller`, `name`, `title`, `description`) VALUES (1, 'comments', 'add.comment', 'Добавление комментария', 'добавляет комментарий к %s');
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){ '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, )); }
добавляем:
// добавляем запись в ленту активности 'user_id' => $comment['user_id'], 'subject_title' => '<a href="/'.$comment['target_url'].'#comment_'.$comment_id.'">'.$comment['target_title'].'</a><p>'.$comment['content_html'].'</p>', 'subject_id' => $comment_id, ));
после строки: $this->model->deleteComment($comment['id'], (!$is_comment_child && cmsUser::isAllowed('comments', 'delete', 'full_delete', true)));
добавляем:
// удаляем запись в ленте активности cmsCore::getController('activity')->deleteEntry('comments', "add.comment", $comment['id']);
Реклама #
Val 8 лет назад #
irbis 8 лет назад #
Если у кого есть желание, перепишите на хуки и выложите. Будет полезно сообществу, самому лень переделывать
Sam Hain 7 лет назад #
Нико 6 лет назад #