Добавление комментария в ленте активности.

InstantCMS 2.X
#1 6 сентября 2018 в 14:36
Нет??? или я плохо вижу. Оценка комента есть а добавление комента нет… Зато как-то по несколько одинаковых вариантов от карт..

Посмотрел еще в одной базе и там нет, Как добавить в ленту активности добавление комментариев?
#2 6 сентября 2018 в 17:30
Походу комментариев в ленте нет в природе? А кто сможет сделать это? Я так подозреваю это можно хуком сделать?
#3 6 сентября 2018 в 19:34

Походу комментариев в ленте нет в природе?

Рачей
нет. Вроде поднимал вопрос на форуме. Не появились.

Я так подозреваю это можно хуком сделать?

Рачей
ага. Только кроме добавления записи в ленту надо еще следить за удалением комментария, материала с этим комментарием, за черновиками (что не получить ошибку доступа) и т.п.
#4 6 сентября 2018 в 20:43


ага. Только кроме добавления записи в ленту надо еще следить за удалением комментария, материала с этим комментарием, за черновиками (что не получить ошибку доступа) и т.п.

Zau4man
ну следить не моя забота😊 Хук мне уже сделали😊
Один хороший человек /users/HiAndy сделал😊
#5 6 сентября 2018 в 21:08
Рачей,
Это все год назад сделано. Тему на форуме найти не смог.
Скачиваем: /users/files/download6557.html
Распаковываем в корень, обновляем список событий в админке.
На мой взгляд решение плохое. Было бы лучше, если бы кто-нибудь придумал подмешивать в виджет активности комментарии прямо из таблицы комментариев.
#6 7 сентября 2018 в 12:07

ну следить не моя забота

Рачей
тогда в ленте будет куча ссылок на 404.
#7 8 сентября 2018 в 12:42


ну следить не моя забота

Рачей
тогда в ленте будет куча ссылок на 404.

Zau4man
я понимаю, есть администратор контента, вот он пусть и занимается этим.
#8 8 сентября 2018 в 14:42
Подсунул комментарии прямо из таблицы комментариев, без добавления их в таблицу активности:
К сожалению хуками то сделать не получается. Только править два системных файла .
В файле \system\controllers\activity\widgets\list\widget.php после
  1. $items = $activity->model->limit($limit)->getEntries();
добавить
  1. $items = array_merge($items, cmsCore::getController('comments')->model->filterIsNull('is_deleted')->limit($limit)->getComments());
А в файле \templates\default\controllers\activity\widgets\list\list.tpl.php после
  1. <?php foreach($items as $item) { ?>
добавить
  1. <?php
  2. $item['description'] = !empty($item['description']) ? $item['description'] : ' добавляет комментарий <a class="subject" href="'. $item['target_url'] .'#comment_'.$item['id'].'">'. html_strip($item['target_title'], 50).'</a><br/>'.html_clean($item['content_html'], 50);
  3. $item['user']['nickname'] = !empty($item['user']['nickname']) ? $item['user']['nickname'] : $item['author_name'];
  4. $item['date_diff'] = !empty($item['date_diff']) ? $item['date_diff'] : $item['date_pub'];
  5. ?>
#9 8 сентября 2018 в 15:53


Подсунул комментарии прямо из таблицы комментариев

Ris
Мне то решение как раз. У нас контент не удаляется, потому что при добавлении его проверяют и платят за него деньги. А если сам комент удалить, то ссылка на страницу останется нормальной. Так что вот!
#10 9 сентября 2018 в 00:20

К сожалению хуками то сделать не получается. Только править два системных файла .

Ris
К счастью выяснилось, что это возможно. Все делается одним хуком:
  1. <?php
  2.  
  3. class onCommentsActivityBeforeList extends cmsAction {
  4.  
  5. public function run($items){
  6.  
  7. $limit = cmsController::loadOptions('comments')['limit'];
  8.  
  9. $comments = $this->model->orderBy('date_pub', 'desc')->filterIsNull('is_deleted')->limit($limit)->getComments();
  10.  
  11. foreach($comments as $comment){
  12. $comment['description'] = !empty($comment['description']) ?
  13. $item['description'] :
  14. ' добавляет комментарий к <a class="subject" href="'. $comment['target_url'] .'#comment_'.$comment['id'].'">'. html_strip($comment['target_title'], 50).'</a>
  15. <br/>'.html_clean($comment['content_html'], 50);
  16. $comment['user']['nickname'] = !empty($comment['user']['nickname']) ? $comment['user']['nickname'] : $comment['author_name'];
  17. $comment['date_diff'] = !empty($comment['date_diff']) ? $comment['date_diff'] : $comment['date_pub'];
  18.  
  19. $comments_mix[] = $comment;
  20. }
  21.  
  22. $items = array_merge($comments_mix, $items);
  23.  
  24. usort($items, function($a, $b){
  25. return (strtotime($b['date_pub']) - strtotime($a['date_pub']));
  26. });
  27.  
  28. return $items;
  29.  
  30. }
  31.  
  32. }
Кто не знает, как сделать и становить хук — тема в блоге с готовым установщиком.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.