• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/volume/base.php
  • Класс: BitrixDiskVolumeBase
  • Вызов: Base::getFilter
public function getFilter(array $defaultFilter = [], $entity = null): array
{
	$filter = $this->filter;
	foreach ($defaultFilter as $defaultKey => $defaultValue)
	{
		$findDefaultKey = trim($defaultKey, '=<>!@%');
		$found = false;
		foreach ($filter as $key => $value)
		{
			if ($key === 'LOGIC')
			{
				continue;
			}
			if (is_numeric($key) && is_array($value))
			{
				continue;
			}
			$findKey = trim($key, '=<>!@%');
			if ($findDefaultKey == $findKey)
			{
				$found = true;
				break;
			}
		}
		if (!$found)
		{
			$filter[$defaultKey] = $defaultValue;
		}
	}

	if ($entity instanceof MainEntityBase)
	{
		foreach ($filter as $fieldName => $value)
		{
			if ($fieldName === 'LOGIC')
			{
				continue;
			}
			if (is_numeric($fieldName) && is_array($value))
			{
				continue;
			}
			$findFieldName = trim($fieldName, '=<>!@%');
			if (!$entity->hasField($findFieldName))
			{
				unset($filter[$fieldName]);
			}
		}
	}

	return $filter;
}