MIGO Web-Development - разработка и cоздание сайтов в Киеве, Украине

Создание сайтов, поисковое продвижение в Google. Сопровождение, тех.поддержка


звонить: +38 (093) 636 78 08
писать: web@migo.com.ua


Как вывести количество комментариев в Tickets

Как вывести количество комментариев в Tickets

В компоненте Tickets "из коробки" нет сниппета для подсчета комментариев. Исправляем данную неприятность путем написания собственного сниппета (`ticketsCommentsCount`)

Суть сниппета: произвести запрос к базе данных и подсчитать количество строк в результате работы запроса:

<?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;

Вызов сниппета на странице/в шаблоне/в чанке:

[[!ticketsCommentsCount:default=`0`? 
  &id=`[[+id]]`
]]

В параметр ID передать идентификатор ресурса, для которого нужно посчитать количество комеентариев.

проспект И.Мазепы 5 07300 Украина, Киевская обл., г. Вышгород, +38 (093) 636 78 08
Рассказать друзьям:

comments powered by Disqus