Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/components/bitrix/rest.configuration.section/
Upload File :
Current File : /var/www/homesaver/www/bitrix/components/bitrix/rest.configuration.section/class.php

<?
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true)
{
	die();
}

use Bitrix\Rest\Configuration\Manifest;
use Bitrix\Main\ErrorCollection;

class CRestConfigurationSectionComponent extends CBitrixComponent
{
	/** @var ErrorCollection $errors */
	protected $errors;

	protected function checkRequiredParams()
	{
		return true;
	}

	protected function prepareResult()
	{
		$result = [];
		$result['ITEMS'] = Manifest::getList();

		$code = $this->arParams['PLACEMENT_CODE'] ? : false;
		$result['ITEMS'] = array_values(
			array_filter(
				$result['ITEMS'],
				function($manifest) use ($code)
				{
					return $manifest['ACTIVE'] == 'Y' && (($code) ? in_array($code, $manifest['PLACEMENT']) : true);
				}
			)
		);

		$result['ITEMS_JS'] = array_map(
			function($item)
			{
				return [
					'title' => $item['TITLE'],
					'description' => $item['DESCRIPTION'],
					'link' => str_replace('#MANIFEST_CODE#', $item['CODE'], $this->arParams['PATH_TO_SECTION']),
					'icon' => $item['ICON'],
					'color' => $item['COLOR'],
				];
			},
			$result['ITEMS']
		);

		$this->arResult = $result;
		return true;
	}

	protected function printErrors()
	{
		foreach ($this->errors as $error)
		{
			ShowError($error);
		}
	}

	public function executeComponent()
	{
		$this->errors = new ErrorCollection();

		if (!$this->checkRequiredParams())
		{
			$this->printErrors();
			return;
		}

		if (!$this->prepareResult())
		{
			$this->printErrors();
			return;
		}

		$this->includeComponentTemplate();
	}

}