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