• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/source/datafilter.php
  • Класс: BitrixLandingSourceDataFilter
  • Вызов: DataFilter::addNumberValue
protected function addNumberValue(array &$result, $fieldId, array $field, array $value)
{
	if (isset($value['SUB_TYPE'])
		&& isset($value['_from']) && is_string($value['_from'])
		&& isset($value['_to']) && is_string($value['_to'])
	)
	{
		$minValue = trim($value['_from']);
		$maxValue = trim($value['_to']);
		if ($minValue === '' && $maxValue === '')
		{
			return;
		}

		$items = [];
		switch ($value['SUB_TYPE'])
		{
			case 'exact':
				if ($minValue !== '')
				{
					$operator = $this->getFilterOperator($field, 'exact');
					if (is_string($operator))
					{
						$fieldId = $operator.$fieldId;
					}
					unset($operator);
					$items[$fieldId] = $minValue;
				}
				break;
			case 'range':
				if ($minValue !== '' && $maxValue !== '')
				{
					$operator = $operator = $this->getFilterOperator($field, 'range');
					if (is_string($operator))
					{
						$fieldId = $operator.$fieldId;
					}
					unset($operator);
					$items[$fieldId] = [$minValue, $maxValue];
				}
				break;
			case 'more':
				if ($minValue !== '')
				{
					$operator = $this->getFilterOperator($field, 'more');
					if (is_string($operator))
					{
						$fieldId = $operator.$fieldId;
					}
					unset($operator);
					$items[$fieldId] = $minValue;
				}
				break;
			case 'less':
				if ($maxValue !== '')
				{
					$operator = $this->getFilterOperator($field, 'less');
					if (is_string($operator))
					{
						$fieldId = $operator.$fieldId;
					}
					unset($operator);
					$items[$fieldId] = $maxValue;
				}
				break;
		}
		unset($maxValue, $minValue);

		$this->addRows($result, $items, $field);
		unset($items);
	}
}