Проблема при переключении языка

  • 3 Ответов
  • 810 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

SLV

  • ***
  • 48
  • 3
Сайт с тремя языками (укр. рус. англ).  Укр. - по умолчанию

При переключении языка сайта на языки  рус. или англ. все содержание переключается корректно, но есть картинка в хидере (определена в стилях), которая зависит от текущего языка и вот она переключается с запаздыванием на одно обновление станицы.
Кроме того в шаблоне есть строка
Код
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
так вот в ней  переменная
Код
<?php echo $this->language; ?>
тоже меняется с таким же запаздыванием.
При переключении на язык по умолчанию (укр.) запаздывания нет.
От шаблона не зависит.


В чем может быть причина?

-----------------------------------
Версия PHP    5.5.30
Версия Joomla!    3.4.8 Stable

*

kik84

  • ******
  • 1266
  • 59
Re: Проблема при переключении языка
« Ответ #1 : 27.12.2015, 12:27:20 »
Как картинка привязана к языку? Через модуль в админке или условие в коде шаблона?

*

SLV

  • ***
  • 48
  • 3
Re: Проблема при переключении языка
« Ответ #2 : 27.12.2015, 20:27:05 »
В коде шаблона. Определяется тег языка и по нему выбирается стиль, в котором указсана нужная картинка.
Причем все работало нормально, но после какого-то обновления Joomla стало глючить (в последние 2-3 месяца), когда - точно не знаю.
Вот этот код:
Код
.       $currentLang = $doc->language;
                  $curLang = substr($currentLang,0,2);      
                  $doc->addStyleSheet($urlPath.'templates/' . $app->getTemplate().'/css/headerstyle.css.php?security='.defined('_JEXEC')."&amp;suffix=".$curLang);  
« Последнее редактирование: 27.12.2015, 20:43:53 от SLV »

*

SLV

  • ***
  • 48
  • 3
Re: Проблема при переключении языка
« Ответ #3 : 13.01.2016, 18:58:46 »
Поменял
Код
$this->language;
и
Код
$currentLang = $doc->language;
на
Код
$currentLang = JFactory::getLanguage()->getTag();
и все поправилось.