- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/ratings.php
- Класс: CAllRatings
- Вызов: CAllRatings::GetList
static function GetList($arSort=array(), $arFilter=Array())
{
global $DB;
$arSqlSearch = Array();
$err_mess = (CRatings::err_mess())."
Function: GetList
Line: ";
if (is_array($arFilter))
{
foreach ($arFilter as $key => $val)
{
if ((string)$val == '' || $val === "NOT_REF")
continue;
switch(mb_strtoupper($key))
{
case "ID":
$arSqlSearch[] = GetFilterQuery("R.ID", $val, "N");
break;
case "ACTIVE":
if(in_array($val, Array('Y', 'N')))
{
$arSqlSearch[] = "R.ACTIVE = '".$val."'";
}
break;
case "AUTHORITY":
if(in_array($val, Array('Y', 'N')))
{
$arSqlSearch[] = "R.AUTHORITY = '".$val."'";
}
break;
case "POSITION":
if(in_array($val, Array('Y', 'N')))
{
$arSqlSearch[] = "R.POSITION = '".$val."'";
}
break;
case "CALCULATED":
if(in_array($val, Array('Y', 'N', 'C')))
{
$arSqlSearch[] = "R.CALCULATED = '".$val."'";
}
break;
case "NAME":
$arSqlSearch[] = GetFilterQuery("R.NAME", $val);
break;
case "ENTITY_ID":
$arSqlSearch[] = GetFilterQuery("R.ENTITY_ID", $val);
break;
}
}
}
$sOrder = "";
foreach($arSort as $key=>$val)
{
$ord = (mb_strtoupper($val) <> "ASC"? "DESC":"ASC");
switch(mb_strtoupper($key))
{
case "ID":
$sOrder .= ", R.ID ".$ord;
break;
case "NAME":
$sOrder .= ", R.NAME ".$ord;
break;
case "CREATED":
$sOrder .= ", R.CREATED ".$ord;
break;
case "LAST_MODIFIED":
$sOrder .= ", R.LAST_MODIFIED ".$ord;
break;
case "LAST_CALCULATED":
$sOrder .= ", R.LAST_CALCULATED ".$ord;
break;
case "ACTIVE":
$sOrder .= ", R.ACTIVE ".$ord;
break;
case "AUTHORITY":
$sOrder .= ", R.AUTHORITY ".$ord;
break;
case "POSITION":
$sOrder .= ", R.POSITION ".$ord;
break;
case "STATUS":
$sOrder .= ", R.CALCULATED ".$ord;
break;
case "CALCULATED":
$sOrder .= ", R.CALCULATED ".$ord;
break;
case "CALCULATION_METHOD":
$sOrder .= ", R.CALCULATION_METHOD ".$ord;
break;
case "ENTITY_ID":
$sOrder .= ", R.ENTITY_ID ".$ord;
break;
}
}
if ($sOrder == '')
$sOrder = "R.ID DESC";
$strSqlOrder = " ORDER BY ".TrimEx($sOrder,",");
$strSqlSearch = GetFilterSqlSearch($arSqlSearch);
$strSql = "
SELECT
R.ID, R.NAME, R.ACTIVE, R.CALCULATED, R.AUTHORITY, R.POSITION, R.ENTITY_ID, R.CALCULATION_METHOD,
".$DB->DateToCharFunction("R.CREATED")." CREATED,
".$DB->DateToCharFunction("R.LAST_MODIFIED")." LAST_MODIFIED,
".$DB->DateToCharFunction("R.LAST_CALCULATED")." LAST_CALCULATED
FROM
b_rating R
WHERE
".$strSqlSearch."
".$strSqlOrder;
return $DB->Query($strSql, false, $err_mess.__LINE__);
}