- Модуль: landing
- Путь к файлу: ~/bitrix/modules/landing/lib/source/filter.php
- Класс: BitrixLandingSourceFilter
- Вызов: Filter::create
public function create(array $sourceFilter)
{
$result = [];
if (empty($this->fields) || empty($sourceFilter))
{
return $result;
}
$quickSearchField = $this->getQuickSearchField();
foreach ($sourceFilter as $row)
{
if (!BlockFilter::checkPreparedRow($row))
{
continue;
}
$index = $row['key'];
$value = $row['value'];
if (!isset($this->fields[$index]))
{
continue;
}
if (
$index === $quickSearchField
&& isset($value['QUICK_SEARCH'])
&& $value['QUICK_SEARCH'] == 'Y'
)
{
$this->addQuickSearchValue($result, $index, $this->fields[$index], $value);
}
else
{
$handler = $this->getFieldHandler($this->fields[$index]);
if ($handler !== '' && is_callable([$this, $handler]))
{
call_user_func_array(
[$this, $handler],
[&$result, $index, $this->fields[$index], $value]
);
}
}
}
unset($row);
return $result;
}