- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/user.php
- Класс: CAllUser
- Вызов: CAllUser::SetLastActivityDateByArray
static function SetLastActivityDateByArray($arUsers, $ip = null)
{
global $DB;
if (!is_array($arUsers) || empty($arUsers))
{
return false;
}
$strSqlPrefix = "UPDATE b_user SET " .
"TIMESTAMP_X = TIMESTAMP_X, " .
"LAST_ACTIVITY_DATE = " . $DB->CurrentTimeFunction() . " WHERE ID IN (";
$strSqlPostfix = ")";
$maxValuesLen = 2048;
$strSqlValues = '';
$arUsers = array_map("intval", $arUsers);
foreach ($arUsers as $userId)
{
$strSqlValues .= ",$userId";
if (mb_strlen($strSqlValues) > $maxValuesLen)
{
$DB->Query($strSqlPrefix . mb_substr($strSqlValues, 1) . $strSqlPostfix, false, '', ["ignore_dml" => true]);
$strSqlValues = '';
}
}
if ($strSqlValues != '')
{
$DB->Query($strSqlPrefix . mb_substr($strSqlValues, 1) . $strSqlPostfix, false, '', ["ignore_dml" => true]);
}
$event = new MainEvent('main', 'OnUserSetLastActivityDate', [$arUsers, $ip]);
$event->send();
return true;
}