• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/classes/general/restentity.php
  • Класс: CBitrixRestEntity
  • Вызов: CBitrixRestEntity::checkSectionFilter
static function checkSectionFilter($arFilter, $bChangeLogic = true)
{
	if(is_array($arFilter))
	{
		$arFilter = array_change_key_case($arFilter, CASE_UPPER);

		foreach ($arFilter as $key => $value)
		{
			if(preg_match('/^([^a-zA-Z]*)(.*)/', $key, $matches))
			{
				$operation = $matches[1];
				$field = $matches[2];

				if(!in_array($operation, self::$arAllowedOperations))
				{
					unset($arFilter[$key]);
				}
				else
				{
					switch($field)
					{
						case 'TIMESTAMP_X':
						case 'DATE_CREATE':
							$arFilter[$key] = CRestUtil::unConvertDateTime($value, true);
						break;

						case 'SECTION':
							$arFilter[$operation.'IBLOCK_SECTION_ID'] = $value;
							unset($arFilter[$key]);
						break;

						case 'IBLOCK_ID':
						case 'CHECK_PERMISSIONS':
							unset($arFilter[$key]);
						break;

						default:
						break;
					}
				}
			}
			else
			{
				unset($arFilter[$key]);
			}
		}
	}

	return $arFilter;
}