Очередной раз приветствую! Сегодня я хочу рассказать о том, как вывести количество оставленных на странице комментариев в виде обычного числа. Возможно, это не особо актуально для большинства пользователей, но все же будет полезно узнать.
Как известно стандартными средствами 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, то можно получить неплохой результат.