• Модуль: mobileapp
  • Путь к файлу: ~/bitrix/modules/mobileapp/lib/designer/manager.php
  • Класс: BitrixMobileAppDesignerManager
  • Вызов: Manager::getConfigJSON
static function getConfigJSON($appCode, $platform = false)
{
	$map = new BitrixMobileAppDesignerConfigMap();
	$res = ConfigTable::getList(array(
		"filter" => array(
			"APP_CODE" => $appCode,
		)
	));

	$configs = $res->fetchAll();
	$targetConfig = array();

	for ($i = 0; $i < count($configs); $i++)
	{
		if ($configs[$i]["PLATFORM"] == $platform)
		{
			$targetConfig = $configs[$i];
			break;
		}
		elseif ($configs[$i]["PLATFORM"] == "global")
		{
			$targetConfig = $configs[$i];
		}
	}

	$params = array_key_exists("PARAMS", $targetConfig) ? $targetConfig["PARAMS"]: array() ;
	$imageParamList = $map->getParamsByType(ParameterType::IMAGE);
	$imageSetParamList = $map->getParamsByType(ParameterType::IMAGE_SET);
	$structuredConfig = array();

	foreach ($params as $key => $value)
	{
		if (!$map->has($key))
		{
			continue;
		}

		if (array_key_exists($key, $imageParamList))
		{
			$imagePath = CFile::GetPath($value);
			if($imagePath <> '')
				$value = $imagePath;
			else
				continue;
		}

		if (array_key_exists($key, $imageSetParamList))
		{
			$tmpValue = array();
			foreach ($value as $imageCode => $imageId)
			{
				$imagePath = CFile::GetPath($imageId);
				if($imagePath <> '')
					$tmpValue[$imageCode] = $imagePath;
				else
					continue;
			}
			$value = $tmpValue;
		}
		$structuredConfig = array_merge_recursive(self::nameSpaceToArray($key, $value), $structuredConfig);
	}

	if(toUpper(SITE_CHARSET) != "UTF-8")
	{
		$structuredConfig = Encoding::convertEncodingArray($structuredConfig, SITE_CHARSET, "UTF-8");
	}

	self::addVirtualParams($structuredConfig, $platform);

	return json_encode($structuredConfig);
}