- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/lib/component/selector/entity.php
- Класс: BitrixIblockComponentSelectorEntity
- Вызов: Entity::prepareUserFilter
protected function prepareUserFilter()
{
if (!$this->isUsedGridFilter())
return [];
$fields = $this->getGridFilterDefinition();
$filterValues = $this->gridFilterConfig->getFilter($fields);
$filterRows = UIFilterOptions::getRowsFromFields($filterValues);
if (empty($filterRows))
return [];
$result = [];
$quickSearchField = $this->getQuickSearchField();
$checkQuickSearch = (
$quickSearchField !== null
&& isset($filterValues['FIND'])
&& is_string($filterValues['FIND'])
&& trim($filterValues['FIND']) != ''
);
if ($checkQuickSearch)
{
$this->addFilterQuickSearchValue($result, $filterValues, $quickSearchField, $fields[$quickSearchField]);
}
foreach ($filterRows as $id)
{
if (!isset($fields[$id]))
continue;
if ($checkQuickSearch && $id == $quickSearchField)
continue;
switch ($fields[$id]['type'])
{
case "number":
$this->addFilterNumberValue($result, $filterValues, $id, $fields[$id]);
break;
case "date":
$this->addFilterDateValue($result, $filterValues, $id, $fields[$id]);
break;
case "list":
$this->addFilterListValue($result, $filterValues, $id, $fields[$id]);
break;
case "custom_entity":
case "custom":
break;
case "checkbox":
$this->addFilterCheckboxValue($result, $filterValues, $id, $fields[$id]);
break;
case "dest_selector":
$this->addFilterDestSelectorValue($result, $filterValues, $id, $fields[$id]);
break;
/* case "custom_date":
break; */
case "string":
default:
$this->addFilterStringValue($result, $filterValues, $id, $fields[$id]);
break;
}
}
unset($id);
unset($checkQuickSearch, $quickSearchField);
unset($filterRows, $filterValues, $fields);
return $result;
}