Wednesday, March 25, 2015

Как изменить количество производителей, которые выводятся модулем Virtuemart 2

Здравствуйте, уважаемые читатели. Сегодня вам расскажу о небольшой проблемке, которая возникла на одном из моих сайтов.

Сайт сделан на Joomla + Viertuemart 2. В Virtuemart есть модуль, который отвечает за вывод производителей товаров. У меня он расположен справа. Из-за того, что количество производителей слишком большое, то список, который выводится этим модулем очень слишком растянулся и это стало выглядеть некрасиво.

Сперва я решил убрать этот модуль, но потом вспомнил, что первоначальная цель этого модуля была в создании лояльности у клиентов. Запомните: 

Чтобы приобрести доверие у посетителей вашего сайта, необходимо на нем разместить знакомые посетителям элементы в виде логотипов и т.д.
В интернете я не смог найти решения своей проблемы, а все что я не могу там найти, но потом дохожу своими знаниями я публикую на этом блоге, чтобы вы избежали моих ошибок.

Итак: как добавить в модуль Joomla mod_virtuemart_manufacturer дополнительный параметр, который бы учитывал количество брендов, логотипы которых мы хотим отображать на нашем сайте.

Модуль находится в папке: ~/modules/mod_virtuemart_manufacturer/

За вывод товаров отвечает файл: ~/modules/mod_virtuemart_manufacturer/tmpl/default.php

У меня модуль не работает с div, поэтому нам нужно будет редактировать код, который идет после 45 строки. Но сперва нам необходимо подготовиться.

Надо отредактировать файл ~/modules/mod_virtuemart_manufacturer/mod_virtuemart_manufacturer.xml

Находим код
        <param name="manufacturers_per_row" type="text" default=""
label="MOD_VIRTUEMART_MANUFACTURER_ROW"
description="MOD_VIRTUEMART_MANUFACTURER_ROW_DESC" />

Копируем его и вставялем ниже.
Меняет названия переменных:
manufacturers_per_row - на manufacturers_per_line
MOD_VIRTUEMART_MANUFACTURER_ROW - MOD_VIRTUEMART_MANUFACTURER_LINE
MOD_VIRTUEMART_MANUFACTURER_ROW_DESC - MOD_VIRTUEMART_MANUFACTURER_LINE_DESC


Также копируем код ниже и проделываем ту же операцию, что и выше:
                <field name="manufacturers_per_row" type="text" default=""
label="MOD_VIRTUEMART_MANUFACTURER_ROW"
description="MOD_VIRTUEMART_MANUFACTURER_ROW_DESC" />

Затем в файле ~modules/mod_virtuemart_manufacturer/mod_virtuemart_manufacturer.php, после строчки $manufacturers_per_row = $params->get( 'manufacturers_per_row', 1 ); // Display X manufacturers per Row, добавляем $manufacturers_per_line = $params->get( 'manufacturers_per_line', 5); // Display 5 manufactureres in Line. Это наша переменная.

Переходим в наш файл ~modules/mod_virtuemart_manufacturer/tmpl/default.php
Здесь в код внутри цикла foreach ($manufacturers as $manufacturer) в самом конце перед скобкой } добавляем

if ($manufacturers_per_line <= 0) {
break;
} else {
$manufacturers_per_line--;
}

Этот код будет читать наш параметр кол-ва необходимых производителей.

Осталось поменять код в файлах локализации: ~language/en-GB/en-GB.mod_virtuemart_manufacturer.ini и ~/language/ru-RU/ru-RU.mod_virtuemart_manufacturer.ini

После наших MOD_VIRTUEMART_MANUFACTURER_ROW и MOD_VIRTUEMART_MANUFACTURER_ROW_DESC добавляем соответствующие переменные и пишем для них описания на английском и на русском языке.

Вот и все. Если будут какие-то вопросы. Пишите, попробуем разобраться.


Прочтите самые популярные статьи за последние 30 дней