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