• Модуль: learning
  • Путь к файлу: ~/bitrix/modules/learning/classes/general/attempt.php
  • Класс: CAllTestAttempt
  • Вызов: CAllTestAttempt::GetFilter
static function GetFilter($arFilter)
{

	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 "TEST_ID":
			case "STUDENT_ID":
			case "SCORE":
			case "MAX_SCORE":
			case "QUESTIONS":
				$arSqlSearch[] = CLearnHelper::FilterCreate("A.".$key, $val, "number", $bFullJoin, $cOperationType);
				break;

			case "SPEED":
				$arSqlSearch[] = CLearnHelper::FilterCreate(self::getSpeedFieldSql(), $val, "number", $bFullJoin, $cOperationType);
				break;

			case "STATUS":
			case "COMPLETED":
				$arSqlSearch[] = CLearnHelper::FilterCreate("A.".$key, $val, "string_equal", $bFullJoin, $cOperationType);
				break;

			case "DATE_START":
			case "DATE_END":
				$arSqlSearch[] = CLearnHelper::FilterCreate("A.".$key, $val, "date", $bFullJoin, $cOperationType);
				break;

			case "USER":
				$arSqlSearch[] = GetFilterQuery("U.ID, U.LOGIN, U.NAME, U.LAST_NAME",$val);
				break;

			case "USER_LOGIN":
				$arSqlSearch[] = CLearnHelper::FilterCreate("U.LOGIN", $val, "string_equal", $bFullJoin, $cOperationType);
				break;

			case "USER_NAME":
				$arSqlSearch[] = CLearnHelper::FilterCreate("U.NAME", $val, "string_equal", $bFullJoin, $cOperationType);
				break;

			case "USER_LAST_NAME":
				$arSqlSearch[] = CLearnHelper::FilterCreate("U.LAST_NAME", $val, "string_equal", $bFullJoin, $cOperationType);
				break;
		}
	}

	return $arSqlSearch;
}