• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/iblock.php
  • Класс: CAllIBlock
  • Вызов: CAllIBlock::MkOperationFilter
static function MkOperationFilter($key)
{
	static $operations = array(
		"!><" => "NB", //not between
		"!="  => "NI", //not Identical
		"!%"  => "NS", //not substring
		"><"  => "B",  //between
		">="  => "GE", //greater or equal
		"<="  => "LE", //less or equal
		"="   => "I", //Identical
		"%"   => "S", //substring
		"?"   => "?", //logical
		">"   => "G", //greater
		"<"   => "L", //less
		"!"   => "N", // not field LIKE val
		"*"   => "FT", // partial full text match
		"*="  => "FTI", // identical full text match
		"*%"  => "FTL", // partial full text match based on LIKE
	);

	$key = (string)$key;
	$result = array(
		"FIELD" => $key,
		"OPERATION" => "E",
		"PREFIX" => ""
	);
	if ($key == '')
		return $result; // zero key

	for ($i = 3; $i > 0; $i--)
	{
		$op = mb_substr($key, 0, $i);
		if ($op && isset($operations[$op]))
		{
			$result["FIELD"] = mb_substr($key, $i);
			$result["OPERATION"] = $operations[$op];
			$result["PREFIX"] = $op;
			break;
		}
	}

	return $result; // field LIKE val
}