Выводим общее количество комментариев с использованием методов компонента JComments

Очередной раз приветствую! Сегодня я хочу рассказать о том, как вывести количество оставленных на странице комментариев в виде обычного числа. Возможно, это не особо актуально для большинства пользователей, но все же будет полезно узнать.

Как известно стандартными средствами CMS Joomla 3 не предусмотрено комментирование материалов, возможно, это и будет реализовано, но пока приходится довольствоваться сторонними расширениями. Одним из таких расширений и, кстати сказать, одним из самых популярных является JComments, его функции и методы мы и будем использовать для решения поставленной задачи.

Что нам потребуется? Для начала установить компонент комментариев Jcomments, конечно если он не был установлен ранее. Затем нам потребуется файл, отвечающий за макет страницы с материалом, он расположен по адресу /components/com_content/views/article/tmpl/default.php. Его желательно переопределить (положить в папку templates/имя_шаблона/html/com_content/article/default.php), чтобы в дальнейшем после обновления Joomla не потерять внесенные изменения.

Теперь открываем данный файл для редактирования, в него мы будем вносить небольшие поправки. Для начала нужно найти строчки кода отвечающие за вывод основного текста статьи:

<div itemprop="articleBody">
<?php echo $this->item->text; ?>
</div>

Общее количество (число) комментариев я буду выводить после основного текста, следовательно, сразу за вышеуказанным блоком div будем вносить изменения. Результат проделанной работы будет выглядеть следующим образом:

Пример вывода количества комментариев под основным текстом статьи

Для начала нам потребуется включить основной файл компонента Jcomments и включить статический метод JCommentsModel::getCommentsCount. Для данного метода необходимо в качестве параметра передать массив содержащий имя компонента (в нашем случае это com_content) и идентификатор материала, количество комментариев которого мы хотим узнать.

Чтобы все стало понятнее, посмотрите на готовый код:

<? /*Для вывода количества комментариев воспользуемся функционалом компонента JComments */
$comments = JPATH_SITE . '/components/com_jcomments/jcomments.php'
if (file_exists($comments)) {/*Проверяем наличие файла jcomments.php*/
require_once($comments);
$options = array(); /*Массив значений для получения количества комментариев*/
$options['object_id'] = $this->item->id; /*Идентификатор материала, у которого будут проверяться наличие и количество комментариев*/
$options['object_group'] = 'com_content'; /*Имя компонента, в нашем случае это контент*/
$options['published'] = 1;
$count = JCommentsModel::getCommentsCount($options);/*Используем статический метод с массивом условий для получения списка комментариев*/?>
<div class="comment-hits" title="Количество комментариев"><?/*Число комментариев в виде цифры*/?>
<span class="icon-comment" id="article-bottom" aria-hidden="true"><?php echo $count; ?></span> </div>
<?}
/*Конец*/?>

Вставив данный код перед или после основного текста статьи, Вы увидите общее количество оставленных комментариев для текущего материала, а если все это дело еще как следует оформить при помощи CSS, то можно получить неплохой результат.

Добавить комментарий