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

 
Посетитель
small user social cms
Медаль
Сообщений: 221
Здравствуйте вернулся я обратно со своим вопросом по коментами.
Использовал вашу структуру как написано в документации.
Но коментарии не показываются :(

Помогите решите проблему, все 3 шага сделал.

Спасибо за ранее.
http://www.instantcms.ru/forum/thread17246.html
Посетитель
small user social cms
Кубок зрительских симпатий
Сообщений: 81
Код PHP:
  1. public function getCommentTarget($target, $target_id){ }
Этот пункт точно правильно сделали???
Например для моего компонента музыки она выглядет так:
Код PHP:
  1. public function getCommentTarget($target, $target_id) {
  2. $sql = "SELECT name, seolink FROM cms_music WHERE id = '{$target_id}'";
  3. $result = $this->inDB->query($sql);
  4. $music = $this->inDB->fetch_assoc($result);
  5. $musics = array();
  6. $musics['link'] = '/music/'.$music['seolink'];
  7. $musics['title'] = $music['name'];
  8. return $musics;
  9. }
Редактировалось: 1 раз (Последний: 31 января 2012 в 19:53)
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 954
Кстати тоже сейчас пишу компонент, нужно организовать комментарии в нем.. есть какие-то статьи или описания как лучше это реализовать?
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4575
1. Инсталлер компонента
Код PHP:
  1.  
  2. // проверяем не создавали ли мы ранее
  3. $is_comment_target = $inDB->get_field('cms_comment_targets', "target = 'target_name'", 'id');
  4. if(!$is_comment_target){
  5. $inCore->registerCommentsTarget('target_name', 'линк_компонента', 'Видеоролики');
  6. }
2. Модель компонента (файл model.php)
Код PHP:
  1.  
  2. public function getCommentTarget($target, $target_id) {
  3.  
  4. $result = array();
  5.  
  6. switch($target){
  7.  
  8. case 'target_name':
  9. // здесь код, который получает и формирует ссылку на комментарий
  10. $result['link'] = 'какая-то сформированная вами ссылка';
  11. $result['title'] = 'название того, что комментируем';
  12. break;
  13.  
  14. }
  15.  
  16. return ($result ? $result : false);
  17.  
  18. }
Код PHP:
  1.  
  2. // необязательный метод
  3. public function getVisibility($target, $target_id) {
  4.  
  5. $is_hidden = 0;
  6. switch($target){
  7. case 'target_name':
  8. // здесь формируется видимость комментария
  9. // и формируется переменная возвращающая будет ли комментарий виден или нет, например в модуле
  10. break;
  11. }
  12.  
  13. return $is_hidden;
  14.  
  15. }
  16.  
3. Вывод комментариев
- в php коде:
Код PHP:
  1.  
  2. if($inCore->isComponentInstalled('comments')){
  3. $inCore->includeComments();
  4. // $id записи, которую комментируем
  5. // в модели в методе getCommentTarget она же $target_id
  6. comments('target_name', $id);
  7. }
- или в шаблоне с марти
Код PHP:
  1. {comments target='target_name' target_id=$item.id}
Считаем что target_name это некое название назначения комментируемого материала.
Редактировалось: 1 раз (Последний: 31 января 2012 в 22:54)
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
Медаль
Сообщений: 954
Fuze, спасибо большое!
Посетитель
small user social cms
Медаль
Сообщений: 221
DagStudent, Fuze, Спасибо вам большое. Моя ошибка была в том что я не передавал id темы где должны быть комментарии :)
http://www.instantcms.ru/forum/thread17246.html
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: