Как вывести количество комментариев в Tickets
Tickets - универсальное дополнение для Modx Revo. С помощью этого расширения можно организовать комментарии на сайте, систему блога, раздел с вопросами и ответами.
Но сегодня речь пойдет о комментариях и выводе их количества в любом месте шаблона.
К сожалению Tickets не располагает такой функцией (почему непонятно, ведь вещь нужная) и вебмастерам приходится выкручиваться как могут.
К счастью добрые люди написали сниппет, который внедряет эту функцию в комментарии.
Нужно всего то создать новый сниппет ticketCommentCount, который методом обращения к базе данных считает количество комментариев:
<?php $q = $modx->newQuery('modResource', $id); $q->leftJoin('TicketThread','TicketThread', "`TicketThread`.`name` = 'resource-{$id}'"); $q->leftJoin('TicketComment','TicketComment', "`TicketThread`.`id` = `TicketComment`.`thread`"); $q->where(array( 'TicketComment.published' => 1 )); $q->select('COUNT(`TicketComment`.`id`) as `comments`'); $count = 0; if ($q->prepare() && $q->stmt->execute()) { $count = (integer) $q->stmt->fetch(PDO::FETCH_COLUMN); } return $count;
Вызывается сниппет таким образом:
[[!ticketCommentCount:default=`0`? &id=`[[+id]]` ]]
В параметр ID пишите идентификатор ресурса, комментарии которого мы подсчитываем.
Комментарии ()