• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/language.php
  • Класс: CAllLanguage
  • Вызов: CAllLanguage::GetList
static function GetList($by = "sort", $order = "asc", $arFilter=array())
{
	global $DB;
	$arSqlSearch = array();

	if (is_array($arFilter))
	{
		foreach ($arFilter as $key => $val)
		{
			if ((string)$val <> '')
			{
				switch(strtoupper($key))
				{
					case "ACTIVE":
						if($val == "Y" || $val == "N")
						{
							$arSqlSearch[] = "L.ACTIVE='".$DB->ForSql($val)."'";
						}
						break;

					case "NAME":
						$arSqlSearch[] = "UPPER(L.NAME) LIKE UPPER('".$DB->ForSql($val)."')";
						break;

					case "ID":
					case "LID":
						$arSqlSearch[] = "L.LID='".$DB->ForSql($val)."'";
						break;
					case "CODE":
						$arSqlSearch[] = "L.CODE='".$DB->ForSql($val)."'";
						break;
				}
			}
		}
	}

	$strSqlSearch = "";
	foreach($arSqlSearch as $condition)
	{
		$strSqlSearch .= " AND (".$condition.") ";
	}

	$strSql =
		"SELECT L.*, L.LID as ID, L.LID as LANGUAGE_ID, ".
		"	C.FORMAT_DATE, C.FORMAT_DATETIME, C.FORMAT_NAME, C.WEEK_START, C.CHARSET, C.DIRECTION ".
		"FROM b_language L, b_culture C ".
		"WHERE C.ID = L.CULTURE_ID ".
		$strSqlSearch;

	if($by == "lid" || $by=="id") $strSqlOrder = " ORDER BY L.LID ";
	elseif($by == "active") $strSqlOrder = " ORDER BY L.ACTIVE ";
	elseif($by == "name") $strSqlOrder = " ORDER BY L.NAME ";
	elseif($by == "code") $strSqlOrder = " ORDER BY L.CODE ";
	elseif($by == "def") $strSqlOrder = " ORDER BY L.DEF ";
	else
	{
		$strSqlOrder = " ORDER BY L.SORT ";
	}

	if($order == "desc")
	{
		$strSqlOrder .= " desc ";
	}

	$strSql .= $strSqlOrder;

	$res = $DB->Query($strSql);

	return $res;
}