- Модуль: 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];
}