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