• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/queuemanager.php
  • Класс: BitrixImOpenLinesQueueManager
  • Вызов: QueueManager::getDataUpdateUser
static function getDataUpdateUser($userId, $currentUser, $usersFields, $numUser, $departmentId = 0): array
{
	$result = [];

	$dataUpdate = [
		'SORT' => $numUser,
		'USER_ID' => $userId,
		'DEPARTMENT_ID' => $departmentId
	];

	if($usersFields !== false)
	{
		if (!empty($usersFields[$userId]['USER_NAME']))
		{
			$dataUpdate['USER_NAME'] = $usersFields[$userId]['USER_NAME'];
		}
		else
		{
			$dataUpdate['USER_NAME'] = null;
		}

		if (!empty($usersFields[$userId]['USER_WORK_POSITION']))
		{
			$dataUpdate['USER_WORK_POSITION'] = $usersFields[$userId]['USER_WORK_POSITION'];
		}
		else
		{
			$dataUpdate['USER_WORK_POSITION'] = null;
		}
		if (!empty($usersFields[$userId]['USER_AVATAR']))
		{
			$dataUpdate['USER_AVATAR'] = $usersFields[$userId]['USER_AVATAR'];
		}
		else
		{
			$dataUpdate['USER_AVATAR'] = null;
		}
		if (!empty($usersFields[$userId]['USER_AVATAR_ID']))
		{
			$dataUpdate['USER_AVATAR_ID'] = $usersFields[$userId]['USER_AVATAR_ID'];
		}
		else
		{
			$dataUpdate['USER_AVATAR_ID'] = 0;
		}
		if(
			!empty($currentUser['USER_AVATAR_ID']) &&
			(
				empty($dataUpdate['USER_AVATAR_ID']) ||
				$dataUpdate['USER_AVATAR_ID'] != $currentUser['USER_AVATAR_ID']
			)
		)
		{
			CFile::Delete($currentUser['USER_AVATAR_ID']);
		}
	}

	if($usersFields === false)
	{
		$currentUser = [
			'SORT' => $currentUser['SORT'],
			'USER_ID' => $currentUser['USER_ID'],
			'DEPARTMENT_ID' => $currentUser['DEPARTMENT_ID'],
		];
	}
	else
	{
		$currentUser = [
			'SORT' => $currentUser['SORT'],
			'USER_ID' => $currentUser['USER_ID'],
			'DEPARTMENT_ID' => $currentUser['DEPARTMENT_ID'],
			'USER_NAME' => $currentUser['USER_NAME'],
			'USER_WORK_POSITION' => $currentUser['USER_WORK_POSITION'],
			'USER_AVATAR' => $currentUser['USER_AVATAR'],
			'USER_AVATAR_ID' => $currentUser['USER_AVATAR_ID'],
		];
	}

	if(!empty(array_diff_assoc($dataUpdate, $currentUser)))
	{
		$result = $dataUpdate;
	}

	return $result;
}