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

Выводим количество комментариев (TicketComments) любых ресурсов (тикеты и простые ресурсы MODX) в любом месте.

Прошелся по страницам сообщества и собрал в один сниппет. Спасибо Василию Наумкину!

Создаем сниппет 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]]`]]
Василий Stepanov
27 мая 2017, 06:52
modx.pro
3
799
+1
Поблагодарить автора Отправить деньги

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0