- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/main.php
- Класс: CAllMain
- Вызов: CAllMain::GetSiteSwitcherArray
public function GetSiteSwitcherArray()
{
$cur_dir = $this->GetCurDir();
$cur_page = $this->GetCurPage();
$bAdmin = (mb_substr($cur_dir, 0, mb_strlen(BX_ROOT."/admin/")) == BX_ROOT."/admin/");
$path_without_lang = $path_without_lang_tmp = "";
$db_res = CSite::GetList('', '', array("ACTIVE"=>"Y","ID"=>LANG));
if(($ar = $db_res->Fetch()) && mb_strpos($cur_page, $ar["DIR"]) === 0)
{
$path_without_lang = mb_substr($cur_page, mb_strlen($ar["DIR"]) - 1);
$path_without_lang = LTrim($path_without_lang, "/");
$path_without_lang_tmp = RTrim($path_without_lang, "/");
}
$result = array();
$db_res = CSite::GetList("SORT", "ASC", array("ACTIVE"=>"Y"));
while($ar = $db_res->Fetch())
{
$ar["NAME"] = htmlspecialcharsbx($ar["NAME"]);
$ar["SELECTED"] = ($ar["LID"]==LANG);
if($bAdmin)
{
global $QUERY_STRING;
$p = rtrim(str_replace("", "#", preg_replace("/lang=[^]*&*/", "", $QUERY_STRING)), "&");
$ar["PATH"] = $this->GetCurPage()."?lang=".$ar["LID"].($p <> ''? '&'.$p : '');
}
else
{
$ar["PATH"] = "";
if(mb_strlen($path_without_lang) > 1 && file_exists($ar["ABS_DOC_ROOT"]."/".$ar["DIR"]."/".$path_without_lang_tmp))
$ar["PATH"] = $ar["DIR"].$path_without_lang;
if($ar["PATH"] == '')
$ar["PATH"] = $ar["DIR"];
if($ar["ABS_DOC_ROOT"]!==$_SERVER["DOCUMENT_ROOT"])
$ar["FULL_URL"] = (CMain::IsHTTPS() ? "https://" : "http://").$ar["SERVER_NAME"].$ar["PATH"];
else
$ar["FULL_URL"] = $ar["PATH"];
}
$result[] = $ar;
}
return $result;
}