- Модуль: search
- Путь к файлу: ~/bitrix/modules/search/classes/general/customrank.php
- Класс: CSearchCustomRank
- Вызов: CSearchCustomRank::GetList
static function GetList($aSort = array(), $aFilter = array())
{
$DB = CDatabase::GetModuleConnection('search');
$arFilter = array();
foreach ($aFilter as $key => $val)
{
$val = $DB->ForSql($val);
$key = mb_strtoupper($key);
if ($val == '')
continue;
switch ($key)
{
case "SITE_ID":
case "MODULE_ID":
case "PARAM1":
case "PARAM2":
case "ITEM_ID":
case "ID":
case "APPLIED":
$arFilter[] = "CR.".$key."='".$val."'";
break;
}
}
$arOrder = array();
foreach ($aSort as $key => $val)
{
$ord = (mb_strtoupper($val) <> "ASC"? "DESC": "ASC");
$key = mb_strtoupper($key);
switch ($key)
{
case "SITE_ID":
case "MODULE_ID":
case "PARAM1":
case "PARAM2":
case "ITEM_ID":
case "ID":
case "APPLIED":
case "RANK":
$arOrder[] = "CR.".$key." ".$ord;
break;
}
}
if (count($arOrder) == 0)
$arOrder = array(
"CR.SITE_ID ASC"
, "CR.MODULE_ID ASC"
, "CR.PARAM1 DESC"
, "CR.PARAM2 DESC"
, "CR.ITEM_ID DESC"
);
$sOrder = "nORDER BY ".implode(", ", $arOrder);
if (count($arFilter) == 0)
$sFilter = "";
else
$sFilter = "nWHERE ".implode("nAND ", $arFilter);
$strSql = "
SELECT
CR.ID
,CR.SITE_ID
,CR.MODULE_ID
,CR.PARAM1
,CR.PARAM2
,CR.ITEM_ID
,CR.RANK
FROM
b_search_custom_rank CR
".$sFilter.$sOrder;
return $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
}