Все, что пришло в голову самому - создал hightload блок, в котором сохраняю id элемента инфоблока, id пользователя и дату последнего визита странички комментариев элемента.
Там, где нужно, выбираю количество из таблицы сообщений темы форума нужные (фильтрация по дате публикации).
Получается что-то вроде такого:
Код |
---|
$rsCountMsg = \Bitrix\Forum\MessageTable::getList(array(
'select' => array(
'CNT'
),
'filter' => array(
'FORUM_ID' => /*ID форума*/,
'PARAM2' => /*ID элемента инфоблока*/,
'APPROVED' => 'Y', //Флаг того, что сообщение прошло модерацию
'>POST_DATE' => /*Дата последнего визита пользователем странички комментариев для выбранного элемента инфоблока*/ /*если дата публикации позже,
чем последняя дата визита, то считаем непрочитанным*/
),
'runtime' => array(
new \Bitrix\Main\Entity\ExpressionField(
'CNT',
'COUNT(*)'
)
)
)); |
Если у кого есть идеи, как сделать по-другому, то с удовольствием бы ознакомился с ними. Т.к. нутро подсказывает, что можно проще, просто я не знаю, как.