Как вывести количество комментариев?
Выводим количество комментариев (TicketComments) любых ресурсов (тикеты и простые ресурсы MODX) в любом месте.
Прошелся по страницам сообщества и собрал в один сниппет. Спасибо Василию Наумкину!
Создаем сниппет countComments:
Прошелся по страницам сообщества и собрал в один сниппет. Спасибо Василию Наумкину!
Создаем сниппет countComments:
<?php
// считаем комменты тикетов
if ($res = $modx->getObject('Ticket',$id)) {
if ($res->get('comments') == 0) { return "0";}
else {return $res->get('comments');}
}
// считаем комменты ресурсов
if ($q = $modx->newQuery('modResource', $id)) {
$q->leftJoin('TicketThread','TicketThread', "`TicketThread`.`name` = 'resource-{$id}'");
$q->leftJoin('TicketComment','TicketComment', "`TicketThread`.`id` = `TicketComment`.`thread`");
$q->select('COUNT(`TicketComment`.`id`) as `comments`');
$count = 0;
if ($q->prepare() && $q->stmt->execute()) {
$count = (integer) $q->stmt->fetch(PDO::FETCH_COLUMN);
}
if ($count == 0) { return "0";}
else {return $count;}
}
Вызывать внутри ресурса так:[[!countComments? &id = `[[*id]]`]]
Вызывать вне ресурса так:[[!countComments? &id = `[[+id]]`]]
Поблагодарить автора
Отправить деньги