Количество комментариев из всех разделов

При выводе всех материалов компонента (например новости, обсуждения)  иногда требуется вывести количество комментариев всех материалов. Класс nc_comments имеет метод count(), но он позволяет вытаскивать комментарии и их количество только из того раздела, из которого был вызван, даже если в системных настройках было указаны «опции» ignore_sub = ignore_cc = 1. 

Чтобы подсчитать количество комментариев в системных настройках добавляем к запросу

$query_join = "LEFT JOIN Comments_Count as b ON (a.Sub_Class_ID = b.Sub_Class_ID AND a.Message_ID = b.Message_ID)";
$query_select = "b.CountComments";

и используем в перечислении объектов переменную $f_CountComments

Так как LEFT JOIN при отсутствии комментариев выведет NULL лучше проверять наличие значения переменной $f_CountComments и выводить 0 при NULL

<?= $f_CountComments ? $f_CountComments : 0 ?>

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *