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