- Модуль: 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;
}