• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/classes/general/restentity.php
  • Класс: CBitrixRestEntity
  • Вызов: CBitrixRestEntity::entitySectionGet
static function entitySectionGet($params, $n, $server)
{
	if(self::checkSectionParams($params))
	{
		$arIBlock = self::getIBlock(self::getEntityIBlockCode($params['ENTITY'], $server));
		if($arIBlock)
		{
			$arSort = array('ID' => 'ASC');
			$arFilter = array();

			if(isset($params['SORT']) && is_array($params['SORT']))
			{
				$arSort = array_change_key_case($params['SORT'], CASE_UPPER);
			}

			if(isset($params['FILTER']) && is_array($params['FILTER']))
			{
				$arFilter = array_change_key_case($params['FILTER'], CASE_UPPER);
			}

			$arFilter = self::checkSectionFilter($arFilter);
			$arFilter['IBLOCK_ID'] = $arIBlock['ID'];
			$arFilter['CHECK_PERMISSIONS'] = 'Y';

			$dbRes = CIBlockSection::GetList(
				$arSort,
				$arFilter,
				false,
				array('ID', 'IBLOCK_ID', 'CODE', 'TIMESTAMP_X', 'DATE_CREATE', 'CREATED_BY', 'MODIFIED_BY', 'ACTIVE', 'SORT', 'NAME', 'PICTURE', 'DETAIL_PICTURE', 'DESCRIPTION', 'LEFT_MARGIN', 'RIGHT_MARGIN', 'DEPTH_LEVEL', 'IBLOCK_SECTION_ID'),
				self::getNavData($n)
			);

			$result = array();
			while ($res = $dbRes->Fetch(false, false))
			{
				$res['ENTITY'] = $params['ENTITY'];
				$res['SECTION'] = $res['IBLOCK_SECTION_ID'];

				$res['TIMESTAMP_X'] = CRestUtil::ConvertDateTime($res['TIMESTAMP_X']);
				$res['DATE_CREATE'] = CRestUtil::ConvertDateTime($res['DATE_CREATE']);

				if($res['PICTURE'] > 0)
					$res['PICTURE'] = self::getFile($res['PICTURE']);

				if($res['DETAIL_PICTURE'] > 0)
					$res['DETAIL_PICTURE'] = self::getFile($res['DETAIL_PICTURE']);

				unset($res['IBLOCK_ID']);
				unset($res['IBLOCK_SECTION_ID']);
				unset($res['DETAIL_TEXT_TYPE']);
				unset($res['DESCRIPTION_TYPE']);
				$result[] = $res;
			}

			return self::setNavData($result, $dbRes);
		}
		else
		{
			throw new RestException('Entity not found', self::ERROR_ENTITY_NOT_FOUND);
		}
	}
}