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