GridFilter::process

  1. Bitrix24 API (v. 23.675.0)
  2. tasks
  3. GridFilter
  4. process
  • Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/project/filter/gridfilter.php
  • Класс: BitrixTasksInternalsProjectFilterGridFilter
  • Вызов: GridFilter::process
public function process(Query $query): Query
{
	$filterFields = $this->getFilterFields();
	$filterData = $this->getFilterData();

	if (!array_key_exists('FILTER_APPLIED', $filterData) || $filterData['FILTER_APPLIED'] !== true)
	{
		return $query;
	}

	if (array_key_exists('FIND', $filterData) && trim($filterData['FIND']) !== '')
	{
		$query = $this->processFilterSearch($query, $filterData['FIND']);
	}

	foreach ($filterFields as $filterRow)
	{
		$id = $filterRow['id'];
		$type = $filterRow['type'];

		switch ($type)
		{
			case 'number':
				$query = $this->handleNumberFilterRow($id, $filterData, $query);
				break;

			case 'string':
				$query = $this->handleStringFilterRow($id, $filterData, $query);
				break;

			case 'date':
				$query = $this->handleDateFilterRow($id, $filterData, $query);
				break;

			case 'list':
				$query = $this->handleListFilterRow($id, $filterData, $query);
				break;

			case 'dest_selector':
				$query = $this->handleEntitySelectorFilterRow($id, $filterData, $query);
				break;

			default:
				break;
		}
	}

	return $query;
}

Добавить комментарий