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

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 - reCAPTCHA от Google

Автор phvsfpgs

Ответов: 1
Просмотров: 100
Последний ответ 06.02.2019, 14:42:00
от khan-alex
Как изменить плагин reCAPTCHA что бы работал в JComments?

Автор gillmor

Ответов: 2
Просмотров: 91
Последний ответ 05.02.2019, 00:18:15
от gillmor
Проблемы с JComments

Автор saltonik

Ответов: 3
Просмотров: 245
Последний ответ 12.12.2018, 15:01:47
от effrit
JComments запретить ссылки в комментах

Автор tati-2000

Ответов: 4
Просмотров: 1120
Последний ответ 03.11.2018, 12:31:20
от vladimirok
[Опрос] Оправдал ли ваши надежды JComments?

Автор Mitrich

Ответов: 86
Просмотров: 53593
Последний ответ 24.10.2018, 13:39:30
от jem777