(mixed) $lang langsCollection :: getDefaultLang ()

Описание:

Метод возвращает объект типа lang, являющийся языком по умолчанию системы.

Язык системы по умолчанию - это язык, который использует система в качестве языка домена, если у объекта класса домен (domain) по каким-либо причинам не указан язык по умолчанию

Язык по умолчанию домена - это язык, который использует система во всех случаях, когда ее поведение зависит от текущего языка, если ей явно не указано, какой язык следует использовать. Например, если имеется две языковые версии сайта (доиена) - русская и английская, и при этом русский назначен языком по умолчанию, все ссылки на английские страницы должны иметь вид http://www.example.com/en/some_english_page/, на русские же - просто http://www.example.com/some_russian_page/.

Пользователи системы не могут сами назначать язык системы по умолчанию. Пользователям доступно только изменения значения по умолчанию для языков домена (раздел "Конфигурация", закладка "Домены").

NOTE: Обратите внимание, что в большинстве случаев разработчику не требуется использование метода langsCollection::getDefaultLang класса langsCollection; скорее всего вам требуется метод domains::getDefaultLangId класса domain


Пример кода:

<?php
/*
Допустим, мы хотим вывести поисковую форму, позволяющую осуществлять поиск по выбранной посетителем языковой версии сайта.
Для этого мы возмем массив всех языков, зарегистрированных в системе, и сформируем html-код, изменяющий параметр 'action' поисковой формы в зависимости от выбранного посетителем языка.
//
При этом мы должны учесть, что для языка по умолчанию домена следует опустить его префикс в поисковом url'е. При этом - в качестве примера, но в реальности это маловероятно - проверяем, корректное ли значение возвращает метод "язык по умолчанию для домена", и если нет, то считаем языком по умолчанию домена язык по умолчанию системы.
*/
public function getExampleSearchForm() {
$sForm = "<form name=\"exampleform\" action=\"\" method=\"post\">";
$sForm .= "<input type=\"text\" name=\"search_string\" /><br/>";
//
$oLangsColl = langsCollection::getInstance();
// получаем язык по умолчанию для текущего домена :
$iDefaultLangId = domainsCollection::getInstance()->getCurrentDomain()->getDefaultLangId();
// проверяем корректность полученного значения
$oDefaultLang = $oLangsColl->getLang($iDefaultLangId);
if (!(
$oDefaultLang instanceof lang)) { // если по какой-либо причине нет,
// то используем язык по умолчанию для системы :
$oDefaultLang = $oLangsColl->getDefaultLang();
}
$arrLangsColl = $oLangsColl->getList();
foreach (
$arrLangsColl as $iNextLangId=>$oNextLang) {
$sPrefixPart = ($oNextLang->getId() === $oDefaultLang->getId() ? $oNextLang->getPrefix() : ""); // для языка по умолчанию префикс в адресе не требуется
$sForm .= "<input type=\"button\" value=\"".$sPrefixPart."\" onclick=\"this.form.action='/'+(this.value ? this.value+'/' : '')+'search/search_do/'; this.form.submit();\" />&nbsp;";
}
//
$sForm .= "</form>";
//
return $sForm;
}
?>


Сайт с системой управления от 6000 рублей!