- Модуль: learning
- Путь к файлу: ~/bitrix/modules/learning/classes/general/group.php
- Класс: CLearningGroup
- Вызов: CLearningGroup::getFilter
static function getFilter($arFilter)
{
global $DB;
if (!is_array($arFilter))
$arFilter = Array();
$arSqlSearch = Array();
foreach ($arFilter as $key => $val)
{
$res = CLearnHelper::MkOperationFilter($key);
$key = $res["FIELD"];
$cOperationType = $res["OPERATION"];
$key = mb_strtoupper($key);
switch ($key)
{
case 'ID':
case 'SORT':
case 'COURSE_LESSON_ID':
$arSqlSearch[] = CLearnHelper::FilterCreate('LG.' . $key, $val, 'number', $bFullJoin, $cOperationType);
break;
case 'ACTIVE':
$arSqlSearch[] = CLearnHelper::FilterCreate('LG.' . $key, $val, 'string_equal', $bFullJoin, $cOperationType);
break;
case 'ACTIVE_FROM':
case 'ACTIVE_TO':
if ($val !== null)
$arSqlSearch[] = CLearnHelper::FilterCreate('LG.' . $key, $val, 'date', $bFullJoin, $cOperationType);
break;
case "ACTIVE_DATE":
if($val <> '')
{
$arSqlSearch[] = ($cOperationType == "N" ? " NOT" : "")
. "((LG.ACTIVE_TO >= " . $DB->GetNowFunction()
." OR LG.ACTIVE_TO IS NULL) AND (LG.ACTIVE_FROM <= " . $DB->GetNowFunction()
. " OR LG.ACTIVE_FROM IS NULL))";
}
break;
case 'TITLE':
case 'CODE':
$arSqlSearch[] = CLearnHelper::FilterCreate("LG." . $key, $val, "string", $bFullJoin, $cOperationType);
break;
case 'COURSE_TITLE':
$arSqlSearch[] = CLearnHelper::FilterCreate("LL.NAME", $val, "string", $bFullJoin, $cOperationType);
break;
case 'MEMBER_ID':
$arSqlSearch[] = CLearnHelper::FilterCreate('LGM.USER_ID', intval($val), 'number', $bFullJoin, $cOperationType);
break;
default:
if (mb_substr($key, 0, 3) !== 'UF_')
{
throw new LearnException(
'Unknown field: ' . $key,
LearnException::EXC_ERR_ALL_PARAMS
);
}
break;
}
}
return array_filter($arSqlSearch);
}