• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/iblocksection.php
  • Класс: CAllIBlockSection
  • Вызов: CAllIBlockSection::normalizeMixedFilter
static function normalizeMixedFilter(array $filter): array
{
	$modifyList = [
		// common keys
		'ID_1' => '>=ID',
		'ID_2' => '<=ID',
		'NAME' => '?NAME',
		'TIMESTAMP_X_1' => '>=TIMESTAMP_X',
		'TIMESTAMP_X_2' => '<=TIMESTAMP_X',
		'DATE_CREATE_1' => '>=DATE_CREATE',
		'DATE_CREATE_2' => '<=DATE_CREATE',
		'CODE' => 'CODE',
		'EXTERNAL_ID' => 'XML_ID',
		'MODIFIED_USER_ID' => 'MODIFIED_BY',
		'CREATED_USER_ID' => 'CREATED_BY',
		'DESCRIPTION' => '?SEARCHABLE_CONTENT',

		// specific section keys
		// none

		// specific element keys
		'DATE_ACTIVE_FROM_1' => '>=ACTIVE_FROM',
		'DATE_ACTIVE_FROM_2' => '<=ACTIVE_FROM',
		'DATE_ACTIVE_TO_1' => '>=ACTIVE_TO',
		'DATE_ACTIVE_TO_2' => '<=ACTIVE_TO',
	];

	$result = [];
	foreach ($filter as $field => $value)
	{
		$newField = $modifyList[$field] ?? $field;
		$result[$newField] = $value;
	}

	if (isset($result['CHECK_PERMISSIONS']))
	{
		$result['MIN_PERMISSION'] = $result['MIN_PERMISSION'] ?? CIBlockRights::PUBLIC_READ;
	}
	if (isset($result['SECTION_ID']))
	{
		if ((string)$result['SECTION_ID'] === '')
		{
			unset($result['SECTION_ID']);
		}
		else
		{
			$result['SECTION_ID'] = (int)$result['SECTION_ID'];
			if ($result['SECTION_ID'] < 0)
			{
				unset($result['SECTION_ID']);
			}
		}
	}

	return $result;
}