• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/provider/taskfilterbuilder.php
  • Класс: BitrixTasksProviderTaskFilterBuilder
  • Вызов: TaskFilterBuilder::parseOperation
private function parseOperation(string $key): string
{
	$operations = [
		self::OPERATION_EQUAL, // I
		self::OPERATION_NOT_EQUAL, // NI
		self::OPERATION_LIKE, // S
		self::OPERATION_NOT_LIKE, // NS
		self::OPERATION_ASK, // ?
		self::OPERATION_GREAT_LESS, // B
		self::OPERATION_MATCH_EQ, // FTI
		self::OPERATION_MATCH_LIKE, // FTL
		self::OPERATION_MATCH, // FT
		self::OPERATION_NOT_NULL, // NB
		self::OPERATION_GREAT_EQ, // GE
		self::OPERATION_GREAT, // G
		self::OPERATION_LESS_EQ, // LE
		self::OPERATION_LESS, // L
		self::OPERATION_NOT, // N
	];

	foreach ($operations as $prefix)
	{
		if (!preg_match('/^'.preg_quote($prefix).'/', $key))
		{
			continue;
		}
		return $prefix;
	}

	if (preg_match('/^'.preg_quote(self::OPERATION_LEGACY).'/', $key))
	{
		$arManifest = CTaskFilterCtrl::getManifest();
		$arOperationsMap = $arManifest['Operations map'];

		foreach ($arOperationsMap as $operationCode => $operationPrefix)
		{
			$pattern = '/^'.preg_quote($operationPrefix).'[A-Za-z]/';
			if (preg_match($pattern, $key))
			{
				return self::OPERATION_LEGACY.$operationCode;
			}
		}
	}

	return self::OPERATION_DEFAULT;
}