Virtuemart: меняем отображение стандартных модулей
Предположим, требуется несколько раз вывести на страницу модуль mod_virtuemart_latestprod.php, который показывает последние добавленные в магазин товары.
Шаг первый: - Публикуем модули в нужных позициях, указываем в настройках стили отображения (для примера установим стиль для изменяемого модуля horizontal).
Шаг второй: - Находим файл модуля (ваш сайт/modules/mod_virtuemart_latestprod/mod_virtuemart_latestprod.php). Открываем в блокноте и ищем следующий фрагмент кода:
elseif( $display_style== "horizontal" ) { // стиль отображения, указанный в настройках модуля
...
$ps_product->show_snapshot($db->f("product_sku"), $show_price, $show_addtocart);
...
}
Меняем show_snapshot на, предположим show_snapshot2. Должно получиться так:
$ps_product->show_snapshot2($db->f("product_sku"), $show_price, $show_addtocart);
Шаг третий: - находим файл ps_product.php (ваш сайт/administrator/components/com_virtuemart/classes/ps_product.php), открываем в блокноте. Ищем фрагмент кода:
function show_snapshot($product_sku, $show_price=true, $show_addtocart=true, $show_product_name = true ) {
echo $this->product_snapshot( $product_sku, $show_price, $show_addtocart, $show_product_name );
}
Копируем ее и вставляем ниже. Скопированной функции даем название show_snapshot2. Строку echo $this->product_snapshot изменяем на echo $this->product_snapshot2 Должно получиться так:
function show_snapshot($product_sku, $show_price=true, $show_addtocart=true, $show_product_name = true ) {
echo $this->product_snapshot( $product_sku, $show_price, $show_addtocart, $show_product_name );
}
function show_snapshot2($product_sku, $show_price=true, $show_addtocart=true, $show_product_name = true ) {
echo $this->product_snapshot2( $product_sku, $show_price, $show_addtocart, $show_product_name );
}
Шаг четвертый: - В этом же файле ищем функцию function product_snapshot (живет немного ниже первой) и делаем ее копию. Присваиваем копии имя function product_snapshot2. В этой же копии находим строку return $tpl->fetch( 'common/productsnapshot.tpl.php'); (в самом конце функции) и меняем на return $tpl->fetch( 'common/productsnapshot.tpl2.php');
Шаг пятый: - находим файл productsnapshot.tpl.php (ваш сайт/components/com_virtuemart/themes/default/templates/common/productsnapshot.tpl.php), делаем его копию, даем копии имя productsnapshot.tpl2.php. Заливаем копию в ту же папку, где находится оригинал.
Все, теперь модуль со стилем horizontal будет использовать для вывода содержимого шаблон productsnapshot.tpl2.php Далее тусуем элементы, как нужно по дизайну и радуемся жизни.
Метод проверялся на Virtuemart 1.1.9