• Модуль: pull
  • Путь к файлу: ~/bitrix/modules/pull/lib/event.php
  • Класс: BitrixPullEvent
  • Вызов: Event::preparePushParameters
static function preparePushParameters(array $parameters)
{
	$parameters['module_id'] = mb_strtolower($parameters['module_id']);

	if (isset($parameters['pushParamsCallback']))
	{
		if (
			empty($parameters['pushParamsCallback']['class'])
			|| empty($parameters['pushParamsCallback']['method'])
		)
		{
			self::$error = new Error(__METHOD__, 'EVENT_PUSH_CALLBACK_FORMAT', Loc::getMessage('PULL_EVENT_PUSH_CALLBACK_FORMAT_ERROR'), $parameters);
			return false;
		}

		if (empty($parameters['pushParamsCallback']['module_id']))
		{
			$parameters['pushParamsCallback']['module_id'] = $parameters['module_id'];
		}

		MainLoader::includeModule($parameters['pushParamsCallback']['module_id']);

		if (!method_exists($parameters['pushParamsCallback']['class'], $parameters['pushParamsCallback']['method']))
		{
			self::$error = new Error(__METHOD__, 'EVENT_PUSH_CALLBACK_NOT_FOUND', Loc::getMessage('PULL_EVENT_PUSH_CALLBACK_FORMAT_ERROR'), $parameters);
			return false;
		}
		if (!isset($parameters['pushParamsCallback']['params']))
		{
			$parameters['pushParamsCallback']['params'] = [];
		}
		$parameters['push']['pushParamsCallback'] = $parameters['pushParamsCallback'];
		$parameters['hasPushCallback'] = true;
	}
	else
	{
		$parameters['hasPushCallback'] = false;
		$parameters['pushParamsCallback'] = [];

		if (isset($parameters['badge']) && $parameters['badge'] == 'Y')
		{
			$parameters['send_immediately'] = 'Y';
			unset($parameters['badge']);
		}

		if (empty($parameters['push']))
		{
			self::$error = new Error(__METHOD__, 'EVENT_PUSH_PARAMETERS_FORMAT', Loc::getMessage('PULL_EVENT_PUSH_PARAMETERS_FORMAT_ERROR'), $parameters);
			return false;
		}
	}

	if (!isset($parameters['extra']['server_time']))
	{
		$parameters['extra']['server_time'] = date('c');
	}
	if (!$parameters['extra']['server_time_unix'])
	{
		$parameters['extra']['server_time_unix'] = microtime(true);
	}

	return $parameters;
}