- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar.php
- Класс: CCalendar
- Вызов: CCalendar::UpdateCounter
static function UpdateCounter($users = false)
{
if (!$users)
{
$users = array(self::GetCurUserId());
}
elseif(!is_array($users))
{
$users = array($users);
}
$ids = [];
foreach($users as $user)
{
if ((int)$user)
{
$ids[] = (int)$user;
}
}
$users = $ids;
if (!empty($users))
{
$events = CCalendarEvent::GetList([
'arFilter' => [
'CAL_TYPE' => 'user',
'OWNER_ID' => $users,
'FROM_LIMIT' => self::Date(time(), false),
'TO_LIMIT' => self::Date(time() + self::DAY_LENGTH * 90, false),
'IS_MEETING' => 1,
'MEETING_STATUS' => 'Q',
'DELETED' => 'N',
],
'parseRecursion' => false,
'checkPermissions' => false
]);
$counters = [];
foreach($events as $event)
{
if(!isset($counters[$event['OWNER_ID']]))
{
$counters[$event['OWNER_ID']] = 0;
}
$counters[$event['OWNER_ID']]++;
}
foreach($users as $user)
{
if($user > 0)
{
if(isset($counters[$user]) && $counters[$user] > 0)
{
CUserCounter::Set($user, 'calendar', $counters[$user], '**', '', false);
}
else
{
CUserCounter::Set($user, 'calendar', 0, '**', '', false);
}
}
}
}
}