• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/services/automatic.php
  • Класс: BitrixSaleDeliveryServicesAutomatic
  • Вызов: Automatic::convertOldConfigToNew
static function convertOldConfigToNew($oldConfig)
{
	if(!isset($oldConfig["CONFIG_GROUPS"]) || !is_array($oldConfig["CONFIG_GROUPS"]) || !isset($oldConfig["CONFIG"]) || !is_array($oldConfig["CONFIG"]))
		return array();

	$result = array();


	InputManager::getTypes();
	$mc = new MultiControlString();

	foreach($oldConfig["CONFIG_GROUPS"] as $groupId => $groupName)
	{
		$handlerConfig = array(
			"TITLE" =>	$groupName,
			"DESCRIPTION" => $groupName,
			"ITEMS" => array()
		);

		foreach($oldConfig["CONFIG"] as $key =>  $param)
		{
			if($param["GROUP"] == $groupId)
			{
				$newParam = self::convertOldConfigParamToNew($param);

				if(isset($param["MCS_ID"]))
				{
					if($newParam["TYPE"] == 'DELIVERY_MULTI_CONTROL_STRING')
					{
						if(!$mc->isClean())
						{
							$handlerConfig["ITEMS"][$mc->getKey()] = $mc->getParams();
							$mc->clean();
						}

						$mc->setParams($key, $newParam);
					}
					elseif(!$mc->isClean())
					{
						$mc->addItem($key, $newParam);
					}
					else
					{
						$handlerConfig["ITEMS"][$key] = $newParam;
					}
				}
				elseif(!$mc->isClean())
				{
					$handlerConfig["ITEMS"][$mc->getKey()] = $mc->getParams();
					$mc->clean();
					$handlerConfig["ITEMS"][$key] = $newParam;
				}
				else
				{
					$handlerConfig["ITEMS"][$key] = $newParam;
				}
			}
		}

		if(!$mc->isClean())
		{
			$handlerConfig["ITEMS"][$mc->getKey()] = $mc->getParams();
			$mc->clean();
		}

		$result[$groupId] = $handlerConfig;
	}

	return $result;
}