• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/timeline/controller.php
  • Класс: Bitrix\Crm\Timeline\Controller
  • Вызов: Controller::prepareAuthorInfoBulk
static function prepareAuthorInfoBulk(array &$items)
{
	$userMap = array();
	foreach($items as $ID => &$item)
	{
		if(!is_array($item))
		{
			continue;
		}

		$authorID = isset($item['AUTHOR_ID']) ? (int)$item['AUTHOR_ID'] : 0;
		if($authorID <= 0)
		{
			continue;
		}

		if(!isset($userMap[$authorID]))
		{
			$userMap[$authorID] = array();
		}
		$userMap[$authorID][] = $ID;
	}
	unset($item);

	if(!empty($userMap))
	{
		$userIDs = array_keys($userMap);
		$users = Container::getInstance()->getUserBroker()->getBunchByIds($userIDs);
		foreach ($users as $user)
		{
			$userID = (int)$user['ID'];

			$userName = \CUser::FormatName(\CSite::getNameFormat(), $user, true, false);

			foreach($userMap[$userID] as $ID)
			{
				$items[$ID]['AUTHOR'] = array(
					'FORMATTED_NAME' => $userName,
					'SHOW_URL' => (string)$user['SHOW_URL'],
				);

				if (isset($user['PHOTO_URL']))
				{
					$items[$ID]['AUTHOR']['IMAGE_URL'] = (string)$user['PHOTO_URL'];
				}
			}
		}
	}
}