- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/notify.php
- Класс: BitrixImNotify
- Вызов: Notify::getCounters
static function getCounters($chatId, $isReal = false)
{
$result = Array();
$chatList = Array();
if (is_array($chatId))
{
foreach($chatId as $id)
{
$id = intval($id);
if ($id)
{
$result[$id] = 0;
$chatList[$id] = $id;
}
}
$chatList = array_values($chatList);
$isMulti = count($chatList) > 1;
}
else
{
$id = intval($chatId);
if ($id)
{
$result[$id] = 0;
$chatList[] = $id;
}
$isMulti = false;
}
if (!$chatList)
{
return false;
}
/*if ($isReal)
{
$query = "
SELECT CHAT_ID, COUNT(1) COUNTER
FROM b_im_message
WHERE CHAT_ID ".($isMulti? ' IN ('.implode(',', $chatList).')': ' = '.$chatList[0])."
AND NOTIFY_READ = 'N'
GROUP BY CHAT_ID
";
}
else
{
$query = "
SELECT CHAT_ID, COUNTER
FROM b_im_relation
WHERE CHAT_ID ".($isMulti? ' IN ('.implode(',', $chatList).')': ' = '.$chatList[0])."
";
}*/
/*$orm = BitrixMainApplication::getInstance()->getConnection()->query($query);
while($row = $orm->fetch())
{
$result[$row['CHAT_ID']] = (int)$row['COUNTER'];
}*/
if ($isMulti)
{
$result = (new CounterService(Common::getUserId()))->getForNotifyChats($chatList);
}
else
{
$counter = (new CounterService(Common::getUserId()))->getByChat($chatList[0]);
$result[$chatList[0]] = $counter;
}
return $result;
}