• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/Controller/DefaultElement.php
  • Класс: BitrixIblockControllerDefaultElement
  • Вызов: DefaultElement::getFilterDefinitions
static function getFilterDefinitions(ConditionTree $filter)
{
	$definitions = [];

	foreach ($filter->getConditions() as $condition)
	{
		if ($condition instanceof ConditionTree)
		{
			// add subfilter recursively
			$definitions = array_merge($definitions, static::getFilterDefinitions($condition));
		}
		else
		{
			// add column
			if ($condition->getColumn() !== null)
			{
				$definitions[] = $condition->getColumn();
			}

			// add value
			$values = $condition->getValue();
			if (!is_array($values))
			{
				$values = [$values];
			}

			foreach ($values as $subValue)
			{
				if ($subValue instanceof ColumnExpression)
				{
					$definitions[] = $subValue->getDefinition();
				}
			}
		}
	}

	return $definitions;
}