• Модуль: 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;
}