Производители в VirtueMart 3

Производители в VirtueMart 3

В данной статье мы расскажем о работе с производителями в VirtueMart 3 и покажем, как сделать отображение производителей на витрине товаров.

Начнем с категорий производителей. Данный раздел нигде не выводится в компоненте VirtueMart 3 и предназначен для упорядочивания производителей по определенному признаку (например, категория производимых товаров).

Для того, чтобы создать новую категорию производителей, необходимо перейти в раздел VirtueMart -> Производители -> Категории производителей и нажать кнопку Создать.

Производители в VirtueMart 3. Создание категории

Параметров там немного и все они понятны из названия. После заполнения полей сохраняем изменения.

Далее создадим нового производителя. Переходим в раздел VirtueMart -> Производители -> Производители и нажимаем кнопку Создать.

Производители в VirtueMart 3. Создание производителя

Разберем поля для заполнения:

  1. Название производителя
    Тут все понятно из названия.
  2. Опубликовано
    Тут тоже не должно возникнуть никаких сложностей.
  3. Производитель Псевдоним
    Название страницы товара в адресной строке браузера. Если не заполнять поле, псевдоним сгенерируется автоматически на основе названия производителя.
  4. Категория производителя
    Выбираем категорию, к которой будет принадлежать данный производитель.
  5. URL
    Адрес сайта производителя. Отображается в карточке производителя.
  6. Email
    Адрес электронной почты производителя. Отображается в карточке производителя.
  7. Описание
    Описание производителя. Я при заполнении этого поля, как правило, пишу краткую историю данного производителя.

На этом создание производителей закончено. Перейдем выводу их на сайте.

По умолчанию производитель выводится только в карточке товара, при этом, там отсутствует подсказка о том, что это производитель.

Производители в VirtueMart 3. Отображение производителя по умолчанию

Исправим это. Переходим в каталог ваш_сайт/templates/ваш_шаблон/html/com_virtuemart/productdetails и открываем файл default_manufacturer.php. Находим в файле следующий код:

if (!$this->writeJs) {
 $mans[] = JHtml::_('link', $link, $name);
 } else {
 $mans[] = '<a class="manuModal" rel="{handler: \'iframe\', size: {x: 700, y: 850}}" href="'.$link .'">'.$name.'</a>';
 }

и меняем его на:

if (!$this->writeJs) {
 $mans[] = JHtml::_('link', $link, $name);
 } else {
 echo vmText::_('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL');
 $mans[] = '<a class="manuModal" rel="{handler: \'iframe\', size: {x: 700, y: 850}}" href="'.$link .'">'.$name.'</a>';
 }

Теперь производитель в карточке товара выводится так:

Производители в VirtueMart 3. Улучшенное отображение производителя

Теперь, если кликнуть по наименованию производителя, его карточка откроется в модальном окне. Меня такой вариант не устроил, поэтому, я отредактировал код следующим образом:

строку:

$link = JRoute::_('index.php?option=com_virtuemart&view=manufacturer&virtuemart_manufacturer_id=' . $manufacturers_details->virtuemart_manufacturer_id. '&tmpl=component', FALSE);

поменял на:

$link = JRoute::_('index.php?option=com_virtuemart&view=manufacturer&virtuemart_manufacturer_id=' . $manufacturers_details->virtuemart_manufacturer_id, FALSE);

а строку:

$mans[] = '<a class="manuModal" rel="{handler: \'iframe\', size: {x: 700, y: 850}}" href="'.$link .'">'.$name.'</a>';

на:

$mans[] = '<a class="manulink" href="'.$link .'">'.$name.'</a>';

Теперь карточка производителя открывается в том же окне браузера.

Как вы уже, наверное, заметили, на витрине товаров производители не отображаются. Чтобы исправить это недоразумение откроем файл products.php, находящийся в каталоге ваш_сайт/templates/ваш_шаблон/html/com_virtuemart/sublayouts, найдем в нем следующий код:

<?php //echo $rowsHeight[$row]['price'] ?>
 <div class="vm3pr-<?php echo $rowsHeight[$row]['price'] ?>"> <?php
 echo shopFunctionsF::renderVmSubLayout('prices',array('product'=>$product,'currency'=>$currency)); ?>
 <div class="clear"></div>
 </div>

и сразу после него вставим этот код:

<?php //echo $rowsHeight[$row]['customs']
 // start show manufacturers ?>
 <div class="manufacter">
 <?php $i = 1;
 $mans = array();
 foreach($product->virtuemart_manufacturer_id as $manufacturer_id) {
 $manufacturers_details = $manModel->getManufacturer($manufacturer_id);
 //Link to products
 $link = JRoute::_('index.php?option=com_virtuemart&view=manufacturer&virtuemart_manufacturer_id=' . $manufacturers_details->virtuemart_manufacturer_id, FALSE);
 $name = $manufacturers_details->mf_name;
 // Avoid JavaScript on PDF Output
 if (!$this->writeJs) {
 $mans[] = JHtml::_('link', $link, $name);
 } else {
 echo vmText::_('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL');
 $mans[] = '<a class="manulink" href="'.$link .'">'.$name.'</a>';
 }
 }
 echo implode(', ',$mans); ?>
 </div>
 <?php // end show manufacturers ?>
 <?php //echo $rowsHeight[$row]['customs'] ?>

Добавим следующие CSS стили:

div.manufacter {
    text-align: center;
    padding: 0 0 20px;
}

В итоге витрина товаров стала выглядеть так:

Производители в VirtueMart 3. Вывод производителей на витрину

На этом мы закончили рассматривать работу с производителями в VirtueMart 3.

Остались вопросы? Задавайте их в комментариях к статье или на нашем форуме.

 

Комментировать