- Модуль: landing
- Путь к файлу: ~/bitrix/modules/landing/lib/publicaction/demos.php
- Класс: BitrixLandingPublicActionDemos
- Вызов: Demos::getFilesList
static function getFilesList($type, $page = false, array $filter = [])
{
$result = new PublicActionResult();
if (!is_string($type))
{
return $result;
}
$componentName = 'bitrix:landing.demo';
$className = CBitrixComponent::includeComponentClass($componentName);
$demoCmp = new $className;
$demoCmp->initComponent($componentName);
$demoCmp->arParams = [
'TYPE' => mb_strtoupper($type),
'SKIP_REMOTE' => 'Y',
];
if ($page)
{
$data = $demoCmp->getDemoPage();
}
else
{
$data = $demoCmp->getDemoSite();
}
if (is_array($data))
{
foreach ($data as $key => &$item)
{
if (
!is_array($item) ||
!self::isItemSuitable($item, $filter)
)
{
unset($data[$key]);
continue;
}
if (isset($item['DATA']['items']))
{
// always convert to UTF-8 for REST
$item['DATA']['encoded'] = true;
$item['DATA']['charset'] = 'UTF-8';
$item['DATA']['items'] = BitrixMainTextEncoding::convertEncoding(
$item['DATA']['items'],
SITE_CHARSET,
'UTF-8'
);
}
}
unset($item);
}
$result->setResult($data);
return $result;
}