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