- Модуль: 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;
}