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