ProductRow::isFilterValid

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. ProductRow
  4. isFilterValid
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/controller/item/productrow.php
  • Класс: Bitrix\Crm\Controller\Item\ProductRow
  • Вызов: ProductRow::isFilterValid
protected function isFilterValid(array $filter): bool
{
	$isErrorProneOperation = static function(string $key): bool {
		return (
			preg_match('/([<>])/' . BX_UTF_PCRE_MODIFIER, $key)
			&& mb_strpos($key, '><') === false
		);
	};
	$isValidType = fn($value) => is_string($value) || is_numeric($value);

	foreach ($filter as $key => $value)
	{
		if (is_string($key) && $isErrorProneOperation($key) && !$isValidType($value))
		{
			$this->addError(
				new Error("Value for filter key '{$key}' should be either string or number", ErrorCode::INVALID_ARG_VALUE),
			);

			return false;
		}

		if (is_array($value) && !$this->isFilterValid($value))
		{
			return false;
		}
	}

	return true;
}

Добавить комментарий