0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 1646 Просмотров
*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Проблема: в шаблон сайта надо вставить разметку специально для JComments. То есть если JComments  присутствуют, то разметка появляется, а если не присутствуют - не появляется.

Вопрос: какое условие надо вставить в шаблон, чтобы такое случалось? If... и дальше..?
*

smart

  • Администратор
  • 6485
  • 1315 / 15
  • Хочешь сделать хорошо — сделай!
Re: Проверка присутствия JComments
« Ответ #1 : 07.05.2013, 13:56:50 »
Что именно необходимо узнать - есть ли вообще на сайте JComments?
*

rixter

  • Захожу иногда
  • 93
  • 9 / 0
  • Кто юзал мой писи?
Re: Проверка присутствия JComments
« Ответ #2 : 07.05.2013, 15:50:21 »
*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Re: Проверка присутствия JComments
« Ответ #3 : 07.05.2013, 17:17:06 »
Что именно необходимо узнать - есть ли вообще на сайте JComments?

Необходимо узнать не только установлен этот компонент, но и что он включён.
Проверка наличия файла, как указано на JoomlaTune.com
Код
$comments = JPATH_SITE . '/components/com_jcomments/jcomments.php';
  if (file_exists($comments))
не совсем устраивает, т.к. компонент может быть установлен, но отключён.

Впрочем, задача усложняется, т.к., как правильно заметил тов. rixter, следует также проверять на включённость каждой конкретной категории. Получается многовато проверок для обще-целевого шаблона. Так что я попытаюсь сделать всё исключительно средствами CSS. Вопщем, вопрос снимается, отбой учебной тревоги.
*

smart

  • Администратор
  • 6485
  • 1315 / 15
  • Хочешь сделать хорошо — сделай!
Re: Проверка присутствия JComments
« Ответ #4 : 07.05.2013, 17:37:38 »
А как изначально стоит вопрос-то? В принципе когда компонент вызывается, он объявляет константу JCOMMENTS_SHOW. А так, как шаблон вызывается уже после, то можно проверять по факту - был ли вызов JComments или нет.
*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Re: Проверка присутствия JComments
« Ответ #5 : 09.05.2013, 07:57:52 »
А как изначально стоит вопрос-то?
С самого начала что ли? Ну давайте с самого начала.

Итак, имеем такой дизайн:

Это WordPress-совский шаблон, его надо повторить для Joomla.
Проблема в том, что число комментариев выводится в таком неудобном месте. В WordPress-е вывести число комментариев легко практически в любом месте, там комментарии часть основного API. С шаблоном для Joomla проблема в том, что имя автора материала и число комментариев находятся внутри одного графического элемента - серой полоски. Вывести только число комментариев, без readmore, у меня никак не получается.

Что хочется, так это отдельное событие (не знаю как это по-русски, event), по которому бы выводилось только число комментариев. Понятно, что это событие должно быть от jComments.

Тогда я бы мог сделать достаточно простую верстку, типа:
Код
<div class=grey_bar>
<div class="createdby">
<?php $author =  $this->item->author; ?>
</div>
<div class="comments_number">
<?php echo $this->item->event->JCommentsNumberEvent; ?>
</div>
</div>

Можно было бы добавить к этой верстке проверку условия на наличие JComments, или включать этот кусок через настройки вручную - не принципиально. Загвоздка в том, что я не знаю есть ли такое событие и, если есть, как его правильно использовать.
*

smart

  • Администратор
  • 6485
  • 1315 / 15
  • Хочешь сделать хорошо — сделай!
Re: Проверка присутствия JComments
« Ответ #6 : 10.05.2013, 22:28:00 »
Что хочется, так это отдельное событие (не знаю как это по-русски, event), по которому бы выводилось только число комментариев. Понятно, что это событие должно быть от jComments.
Такое событие в принципе есть:

Код: php
dispatcher	=& JDispatcher::getInstance();
$dispatcher->trigger('onJCommentsCount', array($id, 'com_mycomponent'));
где $id это идентификатор комментируемого объекта, а 'com_mycomponent' соотв. имя компонента.
*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Re: Проверка присутствия JComments
« Ответ #7 : 11.05.2013, 07:34:27 »
Я нашёл аж 24 этих самых триггеров, но onJCommentsCount среди них не наблюдаю.
Он в каком файле определён?
*

smart

  • Администратор
  • 6485
  • 1315 / 15
  • Хочешь сделать хорошо — сделай!
Re: Проверка присутствия JComments
« Ответ #8 : 11.05.2013, 10:53:11 »
Это событие определено в системном плагине (JComments - System).
*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Re: Проверка присутствия JComments
« Ответ #9 : 15.05.2013, 03:53:06 »
Ну, вопщем, если кому понадобиться, то работает такая штуковина:
Код
<?php
echo JText::_('TPL_WARP_COMMENTS') ;
$commentscount = plgSystemJComments::onJCommentsCount($this->item->id, 'com_content') ;
echo $commentscount;
?>

Понятно, что в настройках плагина Материалы - Комментарии следует скрывать ссылку «Комментарии», чтобы один и тотже счётчик два раза не показывать.
*

smart

  • Администратор
  • 6485
  • 1315 / 15
  • Хочешь сделать хорошо — сделай!
Re: Проверка присутствия JComments
« Ответ #10 : 15.05.2013, 11:03:09 »
Ну, вопщем, если кому понадобиться, то работает такая штуковина:
Не совсем корректно, правильнее использовать JDispatcher, как я писал ранее. Так как в этом случае, не нужно проверять, загружен ли плагин, и в случае, если JComments вообще нет на сайте, никакой ошибки не возникнет.
*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Re: Проверка присутствия JComments
« Ответ #11 : 19.05.2013, 14:49:08 »
... правильнее использовать JDispatcher, ...
А у меня через него почему-то сразу не получалось, так я в обход пошёл.  ;D
У меня вообще трудности с ООП, да.

Итак, корректный вариант через диспетчера:
Код
<?php
echo JText::_('TPL_WARP_COMMENTS') ;
$dispatcher =& JDispatcher::getInstance();
$dispatcher->trigger('onJCommentsCount', array($this->item->id, 'com_content'));
?>

Понятно, что к языковым константам в данном случае необходимо добавить нечто вроде
Код
TPL_WARP_COMMENTS="Comments:&nbsp;"

Большое спасибо за помощь, Сергей.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Обсуждение JComments 3.0

Автор smart

Ответов: 246
Просмотров: 57125
Последний ответ 28.08.2018, 14:00:32
от ProtectYourSite
Инициализировать JComments

Автор limon142

Ответов: 2
Просмотров: 218
Последний ответ 09.08.2018, 10:21:37
от limon142
Плагин CB JComments + php7=ошибка

Автор warlocksp

Ответов: 1
Просмотров: 125
Последний ответ 08.08.2018, 15:57:36
от kern.USR
jcomments JComments 2.3.0 и редирект 301

Автор dvd-obzor

Ответов: 16
Просмотров: 4406
Последний ответ 07.07.2018, 22:36:53
от Vasiliy111
Как поместить jcomments во вкладку tab?

Автор creative3d

Ответов: 2
Просмотров: 202
Последний ответ 29.05.2018, 08:14:51
от creative3d