Комментарии к моему компоненту

InstantCMS 2.X
#1 27 сентября 2017 в 20:25
Привет всем… а ткните носом пожалуйста как подключить комментарии к компоненту в instantcms2. Для первой версии нашел, а для второй что то не могу..
Спасибо.
#4 30 сентября 2017 в 13:28
Нико, Да, $item должен содержать заголовок и ID
  1. public function getTargetItemInfo($ctype_name, $id){
  2. if (!$id){ return false; }
  3. $item = $this->getItemById('ВАША_ТАБЛИЦА', $id);
  4. return array(
  5. 'url' => '/shop/view/'.$id, //тут URL на страницу просмотра записи
  6. 'title' => $item['title'], //Заголовок, который будет отображаться в комментариях
  7. 'is_private' => 0 // ноль если запись не приватный
  8. );
  9. }
#5 30 сентября 2017 в 15:51


my-instantcms.ru/posts/3-sistema-kommenitrovanija-dlja-svoego-komponenta.html

Evanescence

Что я не правильно делаю ?
model.php
  1. /* Комментарии */
  2. public function getSportsTeamsComments($id){ // это $item
  3. return $this->get('sport_teams');
  4. }
  5.  
  6. public function updateCommentsCount($ctype_name, $id, $comments_count){
  7. return $this->update('sport_teams', $id, array('comments' => $comments_count));
  8. }
  9.  
  10. public function getTargetItemInfo($ctype_name, $id){
  11. if (!$id){ return false; }
  12. $item = $this->getItemById('sport_teams', $id);
  13. return array(
  14. 'url' => '/sports/team/'.$id,
  15. 'title' => $item['tournament_name'],
  16. 'is_private' => 0 //для версии выше 2.2.0 необходимо
  17. );
  18. }
team.php
  1. $item = $this->model->getSportsTeamsComments($id);
  2. $comments_controller = cmsCore::getController('comments', new cmsRequest(array(
  3. 'target_controller' => $this->sports, //это имя контроллера, т.е. shop
  4. 'target_subject' => $this->sports, // тоже пишем shop так как это для типов контента
  5. 'target_id' => $id // ID товара, нужен что бы найти комменты данного товара
  6. ), cmsRequest::CTX_INTERNAL));
  7. $comments_widget = $comments_controller->getWidget();
  8.  
  9. $template = cmsTemplate::getInstance();
  10.  
  11. $user = cmsUser::getInstance();
  12.  
  13.  
  14.  
  15. $template->render('team', array(
  16. 'item' => $item,
  17. 'comments_widget' => $comments_widget
  18. ));

#6 30 сентября 2017 в 16:50
Evanescence, Я все сделал как в описании но не получается =(
#7 30 сентября 2017 в 17:18


Evanescence, Я все сделал как в описании но не получается =(

Нико

'target_subject' => 'team', // тут должно быть 'название'
#8 30 сентября 2017 в 18:39
prntscr.com/grl97i оставьте как было, т.е. $this->name
#9 30 сентября 2017 в 18:44


prntscr.com/grl97i оставьте как было, т.е. $this->name

Evanescence

Да понял
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.