• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/publicaction/block.php
  • Класс: Bitrix\Landing\PublicAction\Block
  • Вызов: Block::getList
static function getList($lid, array $params = array())
{
	static $mixedParams = ['lid'];

	$result = new PublicActionResult();
	$lids = is_array($lid) ? $lid : [$lid];

	// some params
	if (
		isset($params['edit_mode']) &&
		$params['edit_mode']
	)
	{
		Landing::setEditMode();
	}

	// get list
	$data = array();
	foreach ($lids as $lid)
	{
		$lid = intval($lid);
		$landing = Landing::createInstance($lid, array(
			'deleted' => isset($params['deleted']) && $params['deleted']
		));
		if ($landing->exist())
		{
			foreach ($landing->getBlocks() as $i => $block)
			{
				if ($manifest = $block->getManifest())
				{
					$data[$i] = array(
						'id' => $block->getId(),
						'lid' => $lid,
						'code' => $block->getCode(),
						'name' => $manifest['block']['name'],
						'active' => $block->isActive(),
						'meta' => $block->getMeta()
					);

					// stringify meta
					foreach ($data[$i]['meta'] as &$meta)
					{
						$meta = (string)$meta;
					}
					unset($meta);

					// buffer content
					if (
						isset($params['get_content']) &&
						$params['get_content']
					)
					{
						ob_start();
						$block->view(false, $landing);
						$data[$i]['content'] = ob_get_contents();
						$data[$i]['css'] = $block->getCSS();
						$data[$i]['js'] = $block->getJS();
						ob_end_clean();
					}
				}
			}
		}
		$result->setError($landing->getError());
	}

	$result->setResult(array_values($data));

	return $result;
}