• Модуль: pull
  • Путь к файлу: ~/bitrix/modules/pull/lib/event.php
  • Класс: BitrixPullEvent
  • Вызов: Event::generateEventsForUsers
static function generateEventsForUsers($recipients, $parameters, $channelType = CPullChannel::TYPE_PRIVATE)
{
	if (!is_array($recipients))
	{
		$recipients = [$recipients];
	}
	if (is_array($parameters['dictionary']))
	{
		$dictionary = $parameters['dictionary'];
		unset($parameters['dictionary']);
		$parameters['params'] = array_merge($parameters['params'], $dictionary);
	}

	$processed = [];
	if (is_array($parameters['user_params']))
	{
		$params = $parameters['params'];
		$paramsByUser = $parameters['user_params'];
		unset($parameters['user_params']);

		foreach ($recipients as $recipient)
		{
			if (isset($paramsByUser[$recipient]) && is_array($paramsByUser[$recipient]))
			{
				$userParams = $parameters;
				$userParams['params'] = array_merge($params, $paramsByUser[$recipient]);
				self::addEvent($recipient, $userParams, $channelType);

				$processed[] = $recipient;
			}
		}
	}
	$left = array_diff($recipients, $processed);
	if (!empty($left))
	{
		self::addEvent($left, $parameters, $channelType);
	}
}