• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/component/selector/entity.php
  • Класс: BitrixIblockComponentSelectorEntity
  • Вызов: Entity::addFilterDateValue
private function addFilterDateValue(array &$result, array $filter, $fieldId, array $field)
{
	$valueTypeIndex = $fieldId.'_datesel';

	if (isset($filter[$valueTypeIndex]) && is_string($filter[$valueTypeIndex]))
	{
		$items = [];

		$minIndex = $fieldId.'_from';
		$maxIndex = $fieldId.'_to';

		$minValue = (isset($filter[$minIndex]) && is_string($filter[$minIndex]) ? trim($filter[$minIndex]) : '');
		$maxValue = (isset($filter[$maxIndex]) && is_string($filter[$maxIndex]) ? trim($filter[$maxIndex]) : '');

		switch ($filter[$valueTypeIndex])
		{
			case 'EXACT':
				if ($minValue !== '')
				{
					$operator = $this->getFilterOperator($field, 'default');
					if (is_string($operator))
						$fieldId = $operator.$fieldId;
					unset($operator);
					$items[$fieldId] = $minValue;
				}
				break;
			case 'RANGE':
			default:
				if ($minValue !== '' && $maxValue !== '')
				{
					$operator = $this->getFilterOperator($field, 'range');
					if (is_string($operator))
						$fieldId = $operator.$fieldId;
					unset($operator);
					$items[$fieldId] = [$minValue, $maxValue];
				}
				break;
		}
		unset($maxValue, $minValue, $maxIndex, $minIndex);

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