• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/lib/configuration/manifest.php
  • Класс: BitrixRestConfigurationManifest
  • Вызов: Manifest::callEventInit
static function callEventInit($code, $params = [])
{
	$result = [];
	$manifest = static::get($code);

	if ($manifest !== false && isset($params['TYPE']) && isset($params['CONTEXT_USER']))
	{
		$step = intval($params['STEP']);
		$setting = new Setting($params['CONTEXT_USER']);
		if ($step === 0)
		{
			$setting->delete(Setting::SETTING_MANIFEST);
		}

		$event = new Event(
			'rest',
			static::ON_REST_APP_CONFIGURATION_GET_MANIFEST_SETTING,
			[
				'CODE' => $manifest['CODE'],
				'MANIFEST' => $manifest,
				'TYPE' => $params['TYPE'],
				'CONTEXT' => $params['CONTEXT'] ?? false,
				'CONTEXT_USER' => $params['CONTEXT_USER'],
				'STEP' => $step,
				'NEXT' => isset($params['NEXT']) ? $params['NEXT'] : null,
				'ITEM_CODE' => $params['ITEM_CODE'] ? : null,
				'ADDITIONAL_OPTION' => is_array($params['ADDITIONAL_OPTION']) ? $params['ADDITIONAL_OPTION'] : [],
				'SETTING' => $setting->get(Setting::SETTING_MANIFEST),
				'USER_ID' => $setting->get(Setting::SETTING_USER_ID) ?? 0,
			]
		);
		EventManager::getInstance()->send($event);
		foreach ($event->getResults() as $eventResult)
		{
			$parameters = $eventResult->getParameters();
			if (isset($parameters['SETTING']))
			{
				$setting->set(Setting::SETTING_MANIFEST, $parameters['SETTING']);
			}

			$result[] = [
				'NEXT' => isset($parameters['NEXT']) ? $parameters['NEXT'] : false,
				'ERROR_MESSAGES' => $parameters['ERROR_MESSAGES'] ?? null,
				'ERROR_ACTION' => $parameters['ERROR_ACTION'] ?? null
			];
		}
	}
	return $result;
}