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