Добрый день! Несмотря на то, что у разработчиков есть и более критичные баги на повестке дня, хочу обратить внимание на следующий баг.
Есть мультиязычный сайт: стандартная настроенная мультиязычность 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
 


 
			
			
			
				 Тема закрыта
 Тема закрыта 
					 
		
		 
		
		 
			









 Вопрос решен
 Вопрос решен 
  
	
	
		 
	 
	 
	
 
	
