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