VM 2.x Закладки в карточке товара

подскажите как исправить маленький нюанс. при выставлении отзыва под фото появляются звездочки(рейтинг) и отбражается количество отзывов. а как сделать чтобы, когда за товар еще никто не голосовал, то не отображались ни пустые звездочки и ни надпись "0 отзывов". а чтобы вот звездочки и кол отз появлялись только после написания отзыва
 
Для Joomla 2.5 немного поменялся код...
Сейчас для вкладок (например WM2 или любого другого компонента, модуля, плагина) использую это:
PHP:
echo JHtml::_('tabs.start', 'tab_group_id',  array('useCookie'=>true,'startOffset'=>1));
 
echo JHtml::_('tabs.panel', JText::_('PANEL_1_TITLE'), 'panel_1_id');
echo 'Тут любой текст.';
 
echo JHtml::_('tabs.panel', JText::_('PANEL_2_TITLE'), 'panel_2_id');
echo 'Тут тоже любой текст.';
 
echo JHtml::_('tabs.end');
Где:
'useCookie'=>true - "Запоминание" выбранной вкладки
'startOffset'=>1 - Вкладка по умолчанию

На примере шаблона для товара виртуемарта:
PHP:
//Вставляем перед началом табов
<?php echo JHtml::_('tabs.start', 'tab_group_id',  array('useCookie'=>true,'startOffset'=>1)); ?>
 
<h4 class="title"><?php echo JHtml::_('tabs.panel', JText::_('COM_VIRTUEMART_PRODUCT_DESC_TITLE'), 'panel_1_id'); ?></h4>
[I]Тут описание продукта[/I]
<h4 class="title"><?php echo JHtml::_('tabs.panel', JText::_('COM_VIRTUEMART_RELATED_PRODUCTS'), 'panel_2_id'); ?></h4>
[I]Тут похожие продукты[/I]
<h4 class="title"><?php echo JHtml::_('tabs.panel', JText::_('COM_VIRTUEMART_RELATED_CATEGORIES'), 'panel_3_id'); ?></h4>
[I]Тут похожие категории[/I]
<h4 class="title"><?php echo JHtml::_('tabs.panel', JText::_('COM_VIRTUEMART_REVIEWS'), 'panel_4_id'); ?></h4> 
[I] Тут отзывы[/I]
 
и т.д.
 
//Вставляем в конец табов
echo JHtml::_('tabs.end');

Потом это все можно украсить в css...
 
Не знал в какую тему написать, но всеже решил всеже сюда, вопрос актуальный.
значит есть файл
default_images.php
PHP:
<?php
defined('_JEXEC') or die('Restricted access');
 
// Product Main Image
if (!empty($this->product->images[0])) {
    ?>
    <div class="main-image">
    <?php echo $this->product->images[0]->displayMediaFull('class="medium-image" id="medium-image"', false, "class='modal'", true); ?>
    </div>
<?php } // Product Main Image END ?>
 
<?php
// Showing The Additional Images
// if(!empty($this->product->images) && count($this->product->images)>1) {
if (!empty($this->product->images) and count ($this->product->images)>1) {
    ?>
    <div class="additional-images">
    <?php
    // List all Images
    if (count($this->product->images) > 0) {
        foreach ($this->product->images as $image) {
        echo '<div class="floatleft">' . $image->displayMediaThumb('class="product-image"', true, 'class="modal"', true, true) . '</div>'; //'class="modal"'
        }
    }
    ?>
        <div class="clear"></div>
    </div>
<?php
} // Showing The Additional Images END ?>

Надо добавить код, чтобы рядом с картинками отображалось видео. если оно естественно есть для данного товара.

А вот видео я (во вкладках) вывожу с помощью кода
PHP:
<?php
if (!empty($this->product->customfieldsSorted['Video'])) { ?>
<div title="sj_module_2load:180" class="tab-content" style="display: none;">
<?php foreach ($this->product->customfieldsSorted['Video'] as $field){?>
<?php $this->position='Video';
echo $this->loadTemplate('customfields');?>
<?php } ?>
</div>
<?php } ?>

В итоге должно получиться как показано на картинке
0.JPG
Кто знает, прошу помочь... Заранее спасибо.
 
  • Нравится
Реакции: liza
Не знал в какую тему написать, но всеже решил всеже сюда, вопрос актуальный.
значит есть файл
default_images.php
PHP:
<?php
defined('_JEXEC') or die('Restricted access');
 
// Product Main Image
if (!empty($this->product->images[0])) {
    ?>
    <div class="main-image">
    <?php echo $this->product->images[0]->displayMediaFull('class="medium-image" id="medium-image"', false, "class='modal'", true); ?>
    </div>
<?php } // Product Main Image END ?>
 
<?php
// Showing The Additional Images
// if(!empty($this->product->images) && count($this->product->images)>1) {
if (!empty($this->product->images) and count ($this->product->images)>1) {
    ?>
    <div class="additional-images">
    <?php
    // List all Images
    if (count($this->product->images) > 0) {
        foreach ($this->product->images as $image) {
        echo '<div class="floatleft">' . $image->displayMediaThumb('class="product-image"', true, 'class="modal"', true, true) . '</div>'; //'class="modal"'
        }
    }
    ?>
        <div class="clear"></div>
    </div>
<?php
} // Showing The Additional Images END ?>

Надо добавить код, чтобы рядом с картинками отображалось видео. если оно естественно есть для данного товара.

А вот видео я (во вкладках) вывожу с помощью кода
PHP:
<?php
if (!empty($this->product->customfieldsSorted['Video'])) { ?>
<div title="sj_module_2load:180" class="tab-content" style="display: none;">
<?php foreach ($this->product->customfieldsSorted['Video'] as $field){?>
<?php $this->position='Video';
echo $this->loadTemplate('customfields');?>
<?php } ?>
</div>
<?php } ?>

В итоге должно получиться как показано на картинке
Посмотреть вложение 45833
Кто знает, прошу помочь... Заранее спасибо.
Ты получается хочешь, чтобы у тебя было небольшое превью (картинка) на которое кликаешь и открывается видео?
 
Ты получается хочешь, чтобы у тебя было небольшое превью (картинка) на которое кликаешь и открывается видео?
Совершенно верно. Вот только пока никак не получается.
 
  • Нравится
Реакции: liza
господа, а есть ли для Vm2 возможность вывода числа родных оценок?
а не от сторонних компонентов типа jcomments
мне нужно выводить по аналогии с
Код:
<?php echo $maxrating; ?>
тут просто описывался метод выведения числа обзоров, а к обзору не всегда добавляется оценка, в то же время VM откуда-то высчитывает среднюю оценку, значит где-то должна быть переменная
 
Для Joomla 2.5 немного поменялся код...
Сейчас для вкладок (например WM2 или любого другого компонента, модуля, плагина) использую это...
На примере шаблона для товара виртуемарта...
Для себя переделал пример шаблона для товара таким образом, чтобы вкладки выводились лишь тогда, когда в них есть материал для отображения.

Код:
<?php echo JHtml::_('tabs.start', 'tab_group_id',  array('useCookie'=>true,'startOffset'=>1)); ?>
 
<?php if (!empty($this->product->product_desc)) { // Product Description?>
<h4 class="title"><?php echo JHtml::_('tabs.panel', JText::_('COM_VIRTUEMART_PRODUCT_DESC_TITLE'), 'panel_1_id'); ?>
<?php echo $this->product->product_desc; ?>
</h4>
<?php } ?>
 
<?php if (!empty($this->product->customfieldsRelatedProducts)) { // Product customfieldsRelatedProducts?>
<h4 class="title"><?php echo JHtml::_('tabs.panel', JText::_('COM_VIRTUEMART_RELATED_PRODUCTS'), 'panel_2_id'); ?>
<?php echo $this->loadTemplate('relatedproducts'); ?>
</h4>
<?php } ?>
 
<?php if (!empty($this->product->customfieldsRelatedCategories)) { ?>
<h4 class="title"><?php echo JHtml::_('tabs.panel', JText::_('COM_VIRTUEMART_RELATED_CATEGORIES'), 'panel_3_id'); ?>
<?php echo $this->loadTemplate('relatedcategories'); // Product customfieldsRelatedCategories?>
</h4>
<?php } ?>
 
<h4 class="title"><?php echo JHtml::_('tabs.panel', JText::_('COM_VIRTUEMART_REVIEWS'), 'panel_4_id'); ?><?php echo $this->loadTemplate('reviews'); // REVIEWS?></h4>
 
<?php echo JHtml::_('tabs.end');?>
 
<?php echo JHtml::_('tabs.start', 'tab_group_id', array('useCookie'=>true,'startOffset'=>1)); ?>

<?php if (!empty($this->product->product_desc)) { // Product Description?>
<h4 class="title"><?php echo JHtml::_('tabs.panel', JText::_('COM_VIRTUEMART_PRODUCT_DESC_TITLE'), 'panel_1_id'); ?>
<?php echo $this->product->product_desc; ?>
</h4>
<?php } ?>

<?php if (!empty($this->product->customfieldsRelatedProducts)) { // Product customfieldsRelatedProducts?>
<h4 class="title"><?php echo JHtml::_('tabs.panel', JText::_('COM_VIRTUEMART_RELATED_PRODUCTS'), 'panel_2_id'); ?>
<?php echo $this->loadTemplate('relatedproducts'); ?>
</h4>
<?php } ?>

<?php if (!empty($this->product->customfieldsRelatedCategories)) { ?>
<h4 class="title"><?php echo JHtml::_('tabs.panel', JText::_('COM_VIRTUEMART_RELATED_CATEGORIES'), 'panel_3_id'); ?>
<?php echo $this->loadTemplate('relatedcategories'); // Product customfieldsRelatedCategories?>
</h4>
<?php } ?>

<h4 class="title"><?php echo JHtml::_('tabs.panel', JText::_('COM_VIRTUEMART_REVIEWS'), 'panel_4_id'); ?><?php echo $this->loadTemplate('reviews'); // REVIEWS?></h4>

<?php echo JHtml::_('tabs.end');?>

обнаружил, что данный код табов работает не во всех версиях браузеров, в некоторых содержимое табов выводится без табов, в том порядке в котором табы описаны в шаблоне (случайно обнаружил в firefox на машине заказчика), доступа к которой нет, т.е. поковырять ее на предмет такого поведения я не могу. Может кто знает причины подобного?
 
обнаружил, что данный код табов работает не во всех версиях браузеров
Хм.. только что проверил у себя под opera, chrome, ie10 - везде ок. FF установлен по умолчанию и в нем тоже все в порядке. Возможно, у Вас в firefox отключен javascript?
 
Не знал в какую тему написать, но всеже решил всеже сюда, вопрос актуальный.
значит есть файл
default_images.php
PHP:
<?php
defined('_JEXEC') or die('Restricted access');
 
// Product Main Image
if (!empty($this->product->images[0])) {
    ?>
    <div class="main-image">
    <?php echo $this->product->images[0]->displayMediaFull('class="medium-image" id="medium-image"', false, "class='modal'", true); ?>
    </div>
<?php } // Product Main Image END ?>
 
<?php
// Showing The Additional Images
// if(!empty($this->product->images) && count($this->product->images)>1) {
if (!empty($this->product->images) and count ($this->product->images)>1) {
    ?>
    <div class="additional-images">
    <?php
    // List all Images
    if (count($this->product->images) > 0) {
        foreach ($this->product->images as $image) {
        echo '<div class="floatleft">' . $image->displayMediaThumb('class="product-image"', true, 'class="modal"', true, true) . '</div>'; //'class="modal"'
        }
    }
    ?>
        <div class="clear"></div>
    </div>
<?php
} // Showing The Additional Images END ?>

Надо добавить код, чтобы рядом с картинками отображалось видео. если оно естественно есть для данного товара.

А вот видео я (во вкладках) вывожу с помощью кода
PHP:
<?php
if (!empty($this->product->customfieldsSorted['Video'])) { ?>
<div title="sj_module_2load:180" class="tab-content" style="display: none;">
<?php foreach ($this->product->customfieldsSorted['Video'] as $field){?>
<?php $this->position='Video';
echo $this->loadTemplate('customfields');?>
<?php } ?>
</div>
<?php } ?>

В итоге должно получиться как показано на картинке
Посмотреть вложение 45833
Кто знает, прошу помочь... Заранее спасибо.

Справился с задачей?Очень интересная реализация отображения видео в карточке товара. Это ты плагин какой то юзал, что бы отобразить $this->product->customfieldsSorted['Video'])?Отпиши плизз,если что можно и в личку)Спасибо.
 
Назад
Сверху