• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/services/automatic.php
  • Класс: BitrixSaleDeliveryServicesAutomatic
  • Вызов: Automatic::createConfig
static function createConfig($initHandlerParams, $settings, $siteId = false)
{
	static $result = array();
	$hitCacheId = md5(serialize($initHandlerParams))."_".md5(serialize($settings))."_".strval($siteId);

	if(!isset($result[$hitCacheId]))
	{
		$config = array(
			"CONFIG_GROUPS" => array(),
			"CONFIG" => array(),
		);

		if (is_callable($initHandlerParams["GETCONFIG"]))
		{
			$conf = call_user_func($initHandlerParams["GETCONFIG"], $siteId);

			if(isset($conf["CONFIG_GROUPS"]))
				$config["CONFIG_GROUPS"] = $conf["CONFIG_GROUPS"];

			if ($settings <> '' && is_callable($initHandlerParams["DBGETSETTINGS"]))
			{
				$settings = unserialize($settings, ['allowed_classes' => false]);
				$arConfigValues = call_user_func($initHandlerParams["DBGETSETTINGS"], $settings);
			}
			else
			{
				$arConfigValues = array();
			}

			foreach ($conf["CONFIG"] as $key => $arConfig)
			{
				if (is_array($conf["CONFIG"][$key]))
				{
					$config["CONFIG"][$key] = $conf["CONFIG"][$key];

					if(isset($arConfigValues[$key]))
						$config["CONFIG"][$key]["VALUE"] = $arConfigValues[$key];
					elseif(isset($conf["CONFIG"][$key]["DEFAULT"]))
						$config["CONFIG"][$key]["VALUE"] = $conf["CONFIG"][$key]["DEFAULT"];
					else
						$config["CONFIG"][$key]["VALUE"] = "";
				}
			}
		}

		$result[$hitCacheId] = $config;
	}

	return $result[$hitCacheId];
}