• Модуль: subscribe
  • Путь к файлу: ~/bitrix/modules/subscribe/classes/general/rubric.php
  • Класс: CRubric
  • Вызов: CRubric::GetList
static function GetList($aSort=array(), $aFilter=array())
{
	global $DB;

	$arFilter = array();
	foreach($aFilter as $key=>$val)
	{
		if($val == '')
			continue;

		$key = mb_strtoupper($key);
		switch($key)
		{
			case "ID":
			case "ACTIVE":
			case "VISIBLE":
			case "LID":
			case "AUTO":
			case "CODE":
				$arFilter[] = "R.".$key." = '".$DB->ForSql($val)."'";
				break;
			case "NAME":
				$arFilter[] = "R.NAME like '%".$DB->ForSql($val)."%'";
				break;
		}
	}

	$arOrder = array();
	foreach($aSort as $key=>$val)
	{
		$ord = (mb_strtoupper($val) <> "ASC"? "DESC": "ASC");
		$key = mb_strtoupper($key);

		switch($key)
		{
			case "ID":
			case "NAME":
			case "SORT":
			case "LAST_EXECUTED":
			case "VISIBLE":
			case "LID":
			case "AUTO":
			case "CODE":
				$arOrder[] = "R.".$key." ".$ord;
				break;
			case "ACT":
				$arOrder[] = "R.ACTIVE ".$ord;
				break;
		}
	}
	if(count($arOrder) == 0)
		$arOrder[] = "R.ID DESC";
	$sOrder = "nORDER BY ".implode(", ",$arOrder);

	if(count($arFilter) == 0)
		$sFilter = "";
	else
		$sFilter = "nWHERE ".implode("nAND ", $arFilter);

	$strSql = "
		SELECT
			R.ID
			,R.NAME
			,R.CODE
			,R.SORT
			,R.LID
			,R.ACTIVE
			,R.DESCRIPTION
			,R.AUTO
			,R.VISIBLE
			,".$DB->DateToCharFunction("R.LAST_EXECUTED", "FULL")." AS LAST_EXECUTED
			,R.FROM_FIELD
			,R.DAYS_OF_MONTH
			,R.DAYS_OF_WEEK
			,R.TIMES_OF_DAY
			,R.TEMPLATE
		FROM
			b_list_rubric R
		".$sFilter.$sOrder;

	return $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__); }