(string) $langPrefix lang :: getPrefix ()

Описание:

Метод возвращяет префикс языка.

Префикс языка используется в url страниц сайта и методов модулей (если существует необходимость вызова метода посредством http-запроса) - после имени хоста. Например, http://www.example.com/en/forum/, http://www.example.com/ru/forum/, http://www.example.com/en/search/search_do/. Таким образом система определяет при анализе запрашиваемого адреса, какую языковую версию сайта использовать. Если префикс языка не указан явно в адресе http-запроса, то система считает, что имеется в виду язык по умолчанию (см. langsCollection::getDefaultLang).

Для того чтобы в формах, определяющих вывод макросов, указать на текущий язык, принято использовать макрос , который в коде макроса необходимо заменять на свойство $this->pre_lang (это свойство наследуется каждым модулем, а значение его определяется системой именно как cmsController::getInstance()->getCurrentLang()->getPrefix()). Например, в шаблонах макроса поиска по сайту %search insert_form%, атрибуту action формы ввода поискового запроса присваивается значение /search/search_do/.

Префикс языка определяет во-первых, какую языковую версию сайта использовать (каждая языковая версия имеет собственную структуру страниц; для того чтобы увидеть ее в модуле "Структура", заходите в административный интерфейс с использованием соответствующего преффикса, например http://www.example.com/ae/admin/). Во-вторых, префикс языка, переданный в запросе, определяет, какой файл с константами использовать: при отсутсвии специального файла используется файл lang.php, но если система обнаруживает файл с названием например lang_en.php (или lang_de.php и т.п.), она подключает его (таким образом вы можете использовать одни и те же шаблоны вывода для различных языковых версий сайта - задавая константы как ключи массива $LANG_EXPORT, определенного в соответствующем файле lang_x.php).

Конкретные значения префиксов языков могут быть любыми (то есть префикс английского языка не обязательно должен быть en) и задаются при регистрации языка (и впоследствии могут быть изменены) в модуле "Конфигурация", закладка "Языки" (а также программно, используя метод lang::setPrefix).


Пример кода:

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


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