- Модуль: timeman
- Путь к файлу: ~/bitrix/modules/timeman/lib/absence.php
- Класс: BitrixTimemanAbsence
- Вызов: Absence::onImUserStatusSet
static function onImUserStatusSet(BitrixMainEvent $event)
{
if (!self::isActive() || !self::isRegisterIdle())
{
return true;
}
$currentValues = $event->getParameters();
$previousValues = $currentValues['PREVIOUS_VALUES'];
unset($currentValues['PREVIOUS_VALUES']);
if ($currentValues['IDLE'] != $previousValues['IDLE'])
{
if ($currentValues['IDLE'] instanceof BitrixMainTypeDateTime)
{
$idleDate = $currentValues['IDLE']->add('1 MINUTE');
self::setStatusIdle($currentValues['USER_ID'], true, $idleDate);
}
else
{
self::setStatusIdle($currentValues['USER_ID'], false);
}
}
if ($currentValues['DESKTOP_LAST_DATE'])
{
if ($currentValues['DESKTOP_LAST_DATE'] != $previousValues['DESKTOP_LAST_DATE'])
{
if ($currentValues['DESKTOP_LAST_DATE'] instanceof BitrixMainTypeDateTime)
{
self::setDesktopOnline($currentValues['USER_ID'], $currentValues['DESKTOP_LAST_DATE'], $previousValues['DESKTOP_LAST_DATE']);
}
else
{
self::setDesktopOnline($currentValues['USER_ID'], $currentValues['DESKTOP_LAST_DATE'], null);
}
}
}
return true;
}