Коментарии в компоненте
Использовал вашу структуру как написано в документации.
Но коментарии не показываются :(
Помогите решите проблему, все 3 шага сделал.
Спасибо за ранее.
public function getCommentTarget($target, $target_id){ }
Например для моего компонента музыки она выглядет так:
public function getCommentTarget($target, $target_id) { $sql = "SELECT name, seolink FROM cms_music WHERE id = '{$target_id}'"; $result = $this->inDB->query($sql); $music = $this->inDB->fetch_assoc($result); $musics['link'] = '/music/'.$music['seolink']; $musics['title'] = $music['name']; return $musics; }
// проверяем не создавали ли мы ранее $is_comment_target = $inDB->get_field('cms_comment_targets', "target = 'target_name'", 'id'); if(!$is_comment_target){ $inCore->registerCommentsTarget('target_name', 'линк_компонента', 'Видеоролики'); }
public function getCommentTarget($target, $target_id) { switch($target){ case 'target_name': // здесь код, который получает и формирует ссылку на комментарий $result['link'] = 'какая-то сформированная вами ссылка'; $result['title'] = 'название того, что комментируем'; break; } return ($result ? $result : false); }
// необязательный метод public function getVisibility($target, $target_id) { $is_hidden = 0; switch($target){ case 'target_name': // здесь формируется видимость комментария // и формируется переменная возвращающая будет ли комментарий виден или нет, например в модуле break; } return $is_hidden; }
— в php коде:
if($inCore->isComponentInstalled('comments')){ $inCore->includeComments(); // $id записи, которую комментируем // в модели в методе getCommentTarget она же $target_id comments('target_name', $id); }
{comments target='target_name' target_id=$item.id}