Добрый день! Несмотря на то, что у разработчиков есть и более критичные баги на повестке дня, хочу обратить внимание на следующий баг.
Есть мультиязычный сайт: стандартная настроенная мультиязычность Joomla + ZOOLingual для контента ZOO/JBZoo.
Все работает прекрасно за исключением заголовков табов в шаблоне full, которые созданы по примерам в документации. Шаблон приложения - UIKit.
Например, текущий язык сайта английский
1. После первого открытия страницы с табами заголовки отображаются нормально
Properties | Gallery
2. После переключения языка на русский
JBZOO_ITEM_TAB_PROPS | JBZOO_ITEM_TAB_GALLERY
3. После обновления страницы (без переключения языка) заголовки становятся нормальными.
Характеристики | Галерея
Что проверялось.
а) Отключил все кеширование и минификацию: в Joomla, в шаблоне, в самом JBZoo, системный плагин кеша отключен. Сторонних приблуд для кеширования нет. В итоге в кеше остается только jbzoo_assets и jbzoo_currency - результат тот же.
2. В начале шаблона сделал вывод языка:
$lang =& JFactory::getLanguage(); echo "Current language is: " . $lang->getName();
При отработке видно что язык выбирается правильно.
3. Добавил еще вот так в начало страницы:
echo "JBZOO_ITEM_TAB_PROPS = " . JText::_('JBZOO_ITEM_TAB_PROPS')
В начале страницы константы выводятся так же, как и внутри скриптованного таба.
4. Потом решил принудительно переинициализировать языковой файл JBZoo как это делается при инициализации приложения, добавив в начало:
$zoo = App::getInstance('zoo');
$zoo->system->language->load('com_jbzoo', $zoo->path->path('applications:jbuniversal'), null, true);
Вот после этого все заработало, как должно и без принудительной перезагрузки страницы, но сами понимаете - инциализировать новый инстанс приложения и наново загружать язык на каждой странице - это не выход.
Что делать, куда копать? Или как исключить определенную часть вывода из кэша JBZoo, так как я все-таки подозреваю, что дело именно в нем. Повторяется вне зависимости от релиза, начиная с самых ранних.
На всякий случай привожу код шаблона full:
<?php
/**
* JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
*
* @package jbzoo
* @version 2.x Pro
* @author JBZoo App http://jbzoo.com
* @copyright Copyright (C) JBZoo.com, All rights reserved.
* @license http://jbzoo.com/license-pro.php JBZoo Licence
* @coder Sergey Kalistratov <kalistratov.s.m@gmail.com>
*/
// no direct access
defined('_JEXEC') or die('Restricted access');
$tabsId = uniqid('jbzoo-tabs-');
$align = $this->app->jbitem->getMediaAlign($item, $layout);
echo $this->renderPosition('title', array('style' => 'jbtitle'));
?>
<div class="uk-grid">
<div class="uk-width-1-1">
<?php if ($this->checkPosition('image')) : ?>
<div class="item-image uk-align-<?php echo $align; ?>">
<?php echo $this->renderPosition('image'); ?>
</div>
<?php endif; ?>
<?php if ($this->checkPosition('text')) : ?>
<div class="item-text">
<?php echo $this->renderPosition('text'); ?>
</div>
<?php endif; ?>
<div class="uk-clearfix"></div>
<?php if ($this->checkPosition('list')) : ?>
<div class="item-price">
<?php echo $this->renderPosition('list'); ?>
</div>
<?php endif; ?>
</div>
</div>
<div class="uk-clearfix"></div>
<?php if ($this->checkPosition('tab-properties')
|| $this->checkPosition('tab-gallery')
|| $this->checkPosition('tab-reviews')
) :
$positionParams = array(
'style' => 'jbblock',
'tag' => 'div',
'labelTag' => 'h3',
'clear' => true
);
?>
<div class="tab-container uk-panel uk-panel-box uk-article-divider">
<ul class="uk-tab" data-uk-tab="{connect:'#<?php echo $tabsId; ?>'}">
<?php if ($this->checkPosition('tab-properties')) : ?>
<li><a href="#tab-properties"><?php echo JText::_('JBZOO_ITEM_TAB_PROPS'); ?></a></li>
<?php endif; ?>
<?php if ($this->checkPosition('tab-gallery')) : ?>
<li><a href="#tab-gallery"><?php echo JText::_('JBZOO_ITEM_TAB_GALLERY'); ?></a></li>
<?php endif; ?>
<?php if ($this->checkPosition('tab-reviews')) : ?>
<li><a href="#tab-reviews"><?php echo JText::_('JBZOO_ITEM_TAB_REVIEWS'); ?></a></li>
<?php endif; ?>
</ul>
<ul id="<?php echo $tabsId; ?>" class="uk-switcher uk-margin">
<?php if ($this->checkPosition('tab-properties')) : ?>
<li id="tab-properties">
<table class="uk-table uk-table-hover uk-table-striped uk-table-condensed">
<?php echo $this->renderPosition('tab-properties', array('style' => 'jbtable', 'tooltip' => 1)); ?>
</table>
<div class="clear clr"></div>
</li>
<?php endif; ?>
<?php if ($this->checkPosition('tab-gallery')) : ?>
<li id="tab-gallery">
<?php echo $this->renderPosition('tab-gallery', $positionParams); ?>
<div class="clear clr"></div>
</li>
<?php endif; ?>
<?php if ($this->checkPosition('tab-reviews')) : ?>
<li id="tab-reviews">
<?php echo $this->renderPosition('tab-reviews', $positionParams); ?>
<div class="clear clr"></div>
</li>
<?php endif; ?>
</ul>
</div>
<?php endif; ?>
<?php echo $this->renderPosition('related', array('style' => 'jbblock', 'labelTag' => 'h2', 'clear' => true)); ?>
Сообщение отредактировал Станислав: 10 April 2015 - 20:36


Тема закрыта










