Warning: Creating default object from empty value in /home/p358670/www/old.didgo.ru/components/com_sh404sef/shInit.php on line 37
mod_virtuemart_universal - вывод зачеркнутой цены | Доработка Virtuemart
 


ВНИМАНИЕ!!! ЭТО СТАРАЯ ВЕРСИЯ САЙТА.

ДЛЯ ПОЛУЧЕНИЯ АКТУАЛЬНОЙ ИНФОРМАЦИИ

ПЕРЕЙДИТЕ НА WWW.DIDGO.RU




Опубликовано в: Доработка Virtuemart
23 января 2012


mod_virtuemart_universal - вывод зачеркнутой цены

Те, кто часто работает с Virtuemart знают о существовании такого замечательного модуля, как mod_virtuemart_universal v. 1.2.3 от Beliyadm. О самом модуле я рассказывать не буду, о нем подробно написано на сайте разработчика - тынц. Модуль очень полезный и успешно работает с линейкой Virtuemart до 1.1.9. Но есть у данного модуля и существенный недостатков.

В частности - нельзя вывести старую, зачеркнутую цену, если для товара добавлена скидка. Выводится только картинка "Скидка". Где логика? Сообщать покупателю что на данный товар скидка, ено при этом показывать стоимость без скидки...

Сразу хотел бы упомянуть, что автор модуля выпустил новую версию данного модуля - 2.1, в которой подобное уже реализовано, однако новая версия модуля - коммерческая, стоит 500 рублей (300 руб. для пользователей joomlaforum с количеством сообщений больше 50). 

Изначально я хотел приобрести новую версию модуля. Но вот незадача... Не оказалось под рукой WM или Яндекс-денег (автор принимает оплату только ими). А на мой вопрос "можно ли оплатить Киви" автор скромно промолчал. Либо не захотел отвечать, либо просто не видел ещё моего сообщения (всем нужно отдыхать и у всех есть дела). Проблема лишь в том, что работа ждать не будет. И коль автор продает свои разработки, то можно было бы и озадачиться интеграцией какой-либо системы оплаты себе на сайт.

Тем не менее, я рекомендовал бы покупать именно новую версию модуля, так как купив её, вы сможете получать поддержку, обновления. Описание новой версии - тынц.

 

Внешний вид модуля по умолчанию.

По умолчанию модуль выглядит примерно так:

Внешний вид модуля mod_virtuemart_universal по умолчанию

Картинка скидки есть, а ценник - старый, без скидки. Непорядок.

Шаг 1.

Открываем файл /modules/mod_virtuemart_universal/helper.php

Строки 72-76

//Округляем цену при необходимости
 if ($ceil_price == '1') {
 $ceil_price = 'floor(pp.product_price) AS pprice';
 } else {
 $ceil_price = 'pp.product_price AS pprice';
 }

Меняем на:

//Округляем цену при необходимости
 if ($ceil_price == '1') {
 $ceil_price = 'floor(pp.product_price) AS pprice';
 $ceil_disc_summ = 'floor(dd.amount) AS disc_summ';
 } else {
 $ceil_price = 'pp.product_price AS pprice';
 $ceil_disc_summ = 'dd.amount AS disc_summ';
 }

 

После 118 строки:

' RIGHT JOIN #__vm_product_price as pp ON pp.product_id = p.product_id ' .

Вставляем:

' LEFT JOIN #__vm_product_discount as dd ON dd.discount_id = p.product_discount_id ' .

 

После 139 строки:

$lists[$i]->currency     = $row->currency;

Вставляем:

$lists[$i]->disc_summ     = $row->disc_summ;

 

Шаг 2.

Открываем файл /modules/mod_virtuemart_universal/tmpl/default.php (если шаблон модуля переопределен, то открываем default.php в /templates/шаблон/html/mod_virtuemart_universal)

Строку 24:

<span class="mod_vm_price">Цена: <?php echo $item->price; ?> <?php echo $item->currency; ?></span>

Меняем на код:

<?php if ($item->discount == '1') { ?>
 <span class="mod_vm_price">Цена:
 <span style="color:red; text-decoration:line-through; display:inline;">
 <?php echo $item->price; ?> <?php echo $item->currency; ?> <?php echo (($item->price) - ($item->disc_summ)); ?> <?php echo $item->currency; ?>
 
 
 <?php } else { ?>
 <span class="mod_vm_price">Цена: <?php echo $item->price; ?> <?php echo $item->currency; ?></span>
 <?php } ?>

 

Проверяем что получилось.

Внешний вид модуля с исправлениями.

Внешний вид mod_virtuemart_universal после исправлений

 

Вы можете отблагодарить автора:

WMR - R166832041362

WMZ - Z314865156270

QIWI - 9638061071

Яндекс деньги - 41001228750313


Комментарии 
 
#8 12.09.2013 14:03
Кто-нибудь, может нормально доделать эти два файла и выложить? Ни хрена не работает, выводится две красные зачеркнутые цены без скидки
 
 
#7 11.07.2012 05:00
короче нифига не работает ваш хак
 
 
#6 24.04.2012 03:40
закрывающий span, после первой цены, чтобы только она была зачеркнута
 
 
#5 24.04.2012 03:39
Закрывающий тег
после
 
 
#4 24.04.2012 03:37
Забыли в файле helper.php строка 116
дописать
$query = 'SELECT p.product_id AS pid, p.product_sku AS psku, p.product_thumb_i mage AS pimage, p.product_name AS pname, ' .
' cx.category_id AS catid, '.$ceil_price.', p.product_s_desc AS pintro, dd.amount AS disc_summ, pp.product_currenc y AS currency, p.product_discoun t_id AS discount'.

В файле default.php




поставить закрывающий тег

Единственное, скидка в процентах не считается, от суммы первоначальной тупо отнимается число скидки. Те чтобы все выводилось корректно, скидку нужно забивать ручками (итоговое число), тип ссылки override
 
 
#3 19.02.2012 02:39
Доброго дня. Спасибо за лестные слова
Прошу простить, но видимо действительно пропустил сообщение ваше про оплату киви. Киви принять не могу, но насколько знаю - с них можно отправить и WebMoney.
И к слову - ваш код работать будет некорректно, ибо у скидки есть разный тип - процент и абсолют. А вы отнимаете у цены значение возможно скидки. Просто предупреждаю на всякий случай.
И второе к слову - если кому интересно - подписчикам сайта доступен следующий модуль с всеми опциями ветки 2.1 и с эффектом слайдера - beliyadm.rcoi.net/.../...
 
 
#2 09.02.2012 21:08
Выводится толькк две зачеркнутые старые цены.
 
 
#1 29.01.2012 10:02
Вроде все сделал как написано, но выводится только старая цена два раза, первый раз зачеркнута, второй раз как обычно.