LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.05.2012, 18:57:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: $mosConfig_lang в 1.5.5 всегда равно english, какая переменная ее должна заменить  (Прочитано 2078 раз)
0 Пользователей и 1 Гость смотрят эту тему.
yAnTar
Завсегдатай
*****

Репутация: +80/-3
Offline Offline

Пол: Мужской
Сообщений: 479



« : 07.08.2008, 11:30:21 »

Почему в Joomla 1.5 ( у меня - 1.5.5) в режиме Legacy mode переменная $GLOBALS['mosConfig_lang'] всегда равна english. Это баг разработчиков ?
Какая переменная в 1.5 отвечает за язык на фронте.
Если сделать $lang = &JLanguage::getInstance(); возвращается всегда
Код:
JLanguage Object
(
    [_debug] =>
    [_default] => [b]en-GB[/b]
......


Хотя у меня по дефолту стоит немецкий язык.
Записан
yAnTar
Завсегдатай
*****

Репутация: +80/-3
Offline Offline

Пол: Мужской
Сообщений: 479



« Ответ #1 : 07.08.2008, 11:34:39 »

Нашел в файле plugins/system/legacy.php, чтобы вытянуть язык - нужно использовать такой метод, но это немножко не то - это тянет текущий язык фронта, или админки, в зависимости от того, где выполняется метод
Код:
$lang =& JFactory::getLanguage();
$lang->getBackwardLang()
А мне надо в админке вытянуть язык фронта.
« Последнее редактирование: 08.08.2008, 10:34:09 от yAnTar » Записан
yAnTar
Завсегдатай
*****

Репутация: +80/-3
Offline Offline

Пол: Мужской
Сообщений: 479



« Ответ #2 : 08.08.2008, 13:38:00 »

Нашел в файле administrator/components/com_languages, как тянут, какой язык сейчас активный, взял оттуда, но они не тянут backwardLang, а мне недо средствами Joomla  без хаков и патчей вытянуть backwardLang.
Код:
$client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int'));
$rows = array ();

//load folder filesystem class
jimport('joomla.filesystem.folder');
$path = JLanguage::getLanguagePath($client->path);
$dirs = JFolder::folders( $path );
foreach ($dirs as $dir)
{
$files = JFolder::files( $path.DS.$dir, '^([-_A-Za-z]*)\.xml$' );
foreach ($files as $file)
{
$data = JApplicationHelper::parseXMLLangMetaFile($path.DS.$dir.DS.$file);
trace ($data);
$row = new StdClass();
$row->language = substr($file,0,-4);

if (!is_array($data)) {
continue;
}
foreach($data as $key => $value) {
$row->$key = $value;
echo $key;
}
die();
// if current than set published
$params = JComponentHelper::getParams('com_languages');
if ( $params->get($client->name, 'en-GB') == $row->language) {
$lang = JString::strtolower( str_replace( " ", "_", $row->name ) );

return $lang;
}
}
}
}
Записан
yAnTar
Завсегдатай
*****

Репутация: +80/-3
Offline Offline

Пол: Мужской
Сообщений: 479



« Ответ #3 : 08.08.2008, 13:52:26 »

Здесь подсказали, как надо сделать
Код:
$params   = JComponentHelper::getParams('com_languages');
$frontend_lang = $params->get('site', 'en-GB');
$language = JLanguage::getInstance($frontend_lang);
echo $language->getBackwardLang();
« Последнее редактирование: 08.08.2008, 18:39:21 от yAnTar » Записан
VannyVann
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Сообщений: 46



« Ответ #4 : 04.09.2008, 00:30:31 »

Я тоже искал ответы на такое и не нашел. Зато придумал свое решение: Хранить язык в кукисах.

Код:
$mosConfig_lang=$lang;
}elseif($_COOKIE["language"]){
$mosConfig_lang=$_COOKIE["language"];}
else $mosConfig_lang="russian";

Если бы это стандартизировать, то сайт всегда сможет определить правильный язык для юзера.
Записан
yAnTar
Завсегдатай
*****

Репутация: +80/-3
Offline Offline

Пол: Мужской
Сообщений: 479



« Ответ #5 : 05.09.2008, 10:23:41 »

2 VannyVann
Да нет вы не поняли, вы пишете о 1.0 версии, а я писал о 1.5
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet