LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
25.05.2012, 16:24:50 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: 1 2 3 [4]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Упрощенный модуль корзины  (Прочитано 27348 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
ecolora
Живу я здесь
******

Репутация: +127/-0
Offline Offline

Пол: Мужской
Сообщений: 854


творец


« : 27.03.2010, 20:13:26 »

Если Вы устанавливали VirtueMart по инструкции, то вместе с ним, вероятно, установили и модуль корзины.

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

А если всё это не нужно? Если хочется, чтобы корзина имела простой вид: картинка корзины, ссылка на неё, указание количества товаров в корзине и их общая стоимость (если количество товаров > 0). Наверняка Вы встречали такое где-нибудь в Интернете, когда, например, вверху сайта на видном месте возле логотипа постоянно висела корзина с минимально необходимой информацией.

Я расскажу Вам как это можно сделать.

Вариант I.

Во первых в файле administrator\components\com_virtuemart\languages\common\russian.php в любое место массива языковых значений добавляем вот этот код:

Код:
'PHPSHOP_PRODUCT_COUNT_NAME' => 'Товаров',
'PHPSHOP_PRODUCTS_PAYS' => 'Сумма',

Во вторых, чтобы не изменялся фон у корзины при добавлении товара, идем к файлу (components -> com_virtuemart -> themes -> default -> theme.js) и комментируем строки:

Код:
fxc.start( '#222', color );               
fxbgc.start( '#fff68f', bgcolor );
if( parent ) {
setTimeout( "carts[" + i + "].setStyle( 'background-color', 'transparent' )", 1000 );
}

В третьих, открываем файл components\com_virtuemart\themes\default\templates\common\minicart.tpl.php, в котором как раз содержится код стандартного модуля корзины магазина VirtueMart, и заменяем полностью его содержимое на:

Код:
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>

    <table border=0 cellpadding=0 cellspaceing=0 width=100%><tr valign=top><td>
    <?php if(!$vmMinicart) { ?>
        <a href="index.php?page=shop.cart&amp;option=com_virtuemart" target="_self">
        <img style="display: block;" src="<?php echo $mm_action_url ?>components/com_virtuemart/shop_image/ps_image/menu_logo.gif" alt="VirtueMart" border="0" /></a>
    <td>
    <a href="index.php?page=shop.cart&amp;option=com_virtuemart" target="_self">
    <?php }
    echo $VM_LANG->_('PHPSHOP_CART_TITLE')?>
    </a>
    <br />
    <?php
    $qnt = 0;
    // Loop through each row and build the table
    foreach( $minicart as $cart ) {

foreach( $cart as $attr => $val ) {
// Using this we make all the variables available in the template
// translated example: $this->set( 'product_name', $product_name );
$this->set( $attr, $val );
}
        if(!$vmMinicart) { // Build Minicart
            ?>
            <?php $qnt = $qnt + $cart['quantity'];
        }
    }

    echo $VM_LANG->_('PHPSHOP_PRODUCT_COUNT_NAME').': '.$qnt.' '.$VM_LANG->_('PHPSHOP_PRODUCT_FORM_UNIT_DEFAULT');?>
    <br />
<?php  if ($total_price != '') echo $VM_LANG->_('PHPSHOP_PRODUCTS_PAYS').': '.$total_price; ?>
    </table>

Сохраняемся. Жмём Обновить сайт! И вместо стандартного модуля корзины видим простой модуль (картинка, Корзина, Товары - шт., Сумма (если товаров > 0) и ничего лишнего!), который можно переместить наверх сайта, куда-нибудь поближе к логотипу, где ему самое место!

P.S. Картинка корзины лежит по адресу components/com_virtuemart/shop_image/ps_image/menu_logo.gif

Вариант II.

Если Вас устраивает существующий модуль корзины и Вы хотели бы иметь в дополнение к нему ещё и упрощённый вариант, то берем упрощенный модуль мини-корзины, с описанной выше функциональностью вот тут.
_____________________________________
Если Вы хотите отблагодарить меня за проделанную работу, зарегистрируйтесь по этим партнёрским ссылкам:



Это биржи ссылок. Из личного опыта: к примеру, доход для вёбмастера для сайта с тИЦ 10 и PR 2 - с каждой из них около 1000 р./мес.
« Последнее редактирование: 14.03.2012, 19:01:13 от ecolora » Записан
 
kry
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 85



« Ответ #91 : 08.01.2012, 12:59:37 »

В чем может быть проблема, Denwer показывает ошибку на месте второго модуля корзины:
Notice: Undefined variable: vmMinicart in Z:\home\мой_сайт\www\modules\mod_virtuemart_cart_mini\shop.basket_short.php on line 172
Notice: Undefined variable: total_price in Z:\home\мой_сайт\www\modules\mod_virtuemart_cart_mini\shop.basket_short.php on line 199
При этом сразу после установки второго модуля корзины товар перестал добавляться в корзину, только когда в настройках сайта включил/выключил функцию AJAX добавления в корзину товар начал добавляться.
Вышеуказанные ошибки исчезают когда в корзине имеется хотя бы один  товар.
Помогите избавиться от ошибки

И ешё, как этот дополнительный упрощенный модуль мини-корзины связать с дргим файлом minicart.tpl.php, например, с minicart2.tpl.php, так как в первом файле у меня прописаны стиль и настройки для стандартного модуля корзины. Я пробовал в файле shop.basket_short.php упрощенного модуля, строку:
Код
echo $tpl->fetch( 'common/minicart.tpl.php');
заменить на
Код
echo $tpl->fetch( 'common/minicart2.tpl.php');
но после добавления товара в корзину все настройки и стиль возвращаются к заданным в minicart.tpl.php
Кто решил?
« Последнее редактирование: 08.01.2012, 16:59:58 от kry » Записан
xaocbozzz
Осваиваюсь на форуме
***

Репутация: +7/-0
Offline Offline

Сообщений: 198


Котэ просит! Не обижайте котэ!


« Ответ #92 : 11.01.2012, 06:51:47 »

Честно говоря, мне все клиенты, кого спрашиваю, говорят что корзина в магазине (а он на virtuemart) очень сложная/недоработанная. Т.к. клиентура щепетильная и выбранный товар хочет купить без каких либо сложных регистраций. Поэтому воспользовался проверенным способом, на форуме вновь эту ветку хака я таки и не нашел, а вообщем заменил Задайте вопрос по этому товару на экспресс заказ и добавил в форме, недостающие поля для уточнения. Кому интересно, создам отдельный пост.
Дай ссылку, если создал тему.
Записан
asimo
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 16


« Ответ #93 : 17.01.2012, 19:33:38 »

Скажите а можно сделать чтоб срабатывало уведомление на email при упрощенном варианте заказа?
Вот еще проблема кто знает подскажите. Если положить в корзину а потом удалить то не удаляется и выкидывает с сайта!
« Последнее редактирование: 02.02.2012, 09:02:35 от asimo » Записан
BAHbKA
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 39


« Ответ #94 : 25.02.2012, 15:17:42 »

Попробовал предложенные здесь варианты и ecolora и Overmort. Везде время одна и таже странность - при первом открытии корзины она разворачивается в шаблоне главной страницы Joomla а не виртумартовской, т.е слетают модуль VirtueMart и корзины, зато появляется модуль новостей с главной страницы, при повторной попытке открывает уже нормально. Исправить это не смог, просто переправил оригинальный код VirtueMart и все заработало. Вот мой вариант, мож кому пригодится (картинка с расширением .png).
Код:
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
if(!$vmMinicart) { ?>
<div style="margin:0; vertical-align:middle; width:100%;">
        <div style="float:left; margin:0; max-width:75px;">
<a href="index.php?page=shop.cart&amp;option=com_virtuemart" target="_self">
        <img src="<?php echo $mm_action_url ?>components/com_virtuemart/shop_image/ps_image/menu_logo.png" title="<?php echo $VM_LANG->_('PHPSHOP_CART_SHOW'); ?>" alt=" " border="0" style="margin:5px 5px 5px 10px"  /></a>
        </div>
    <?php }
if($empty_cart) {?>
    <div style="float:right; margin-top:18px; text-align:center; max-width:100px;"> <?php echo $VM_LANG->_('PHPSHOP_EMPTY_CART'); ?> </div> 
    <?php } ?>
</div>
<?php if(!$empty_cart) {?>
<div style="float: right; margin:5px 10px 5px 5px" >
<?php echo $total_products ?>
</div>
<div style="float: right; margin:0px 10px 5px 5px">
<p style="text-align:right; margin:0px;">На сумму:</p>
</div>
<div style="float: right; margin:0px 10px 5px 5px">
<?php echo $total_price ?>
</div>
<?php if (!$empty_cart && !$vmMinicart) { ?>
    <br style="clear:both" /><div align="center" style="text-align:center; margin-top:5px;">
    <?php echo $show_cart ?>
    </div>
<?php }
}
echo $saved_cart;
?>
<div style="clear:both;"></div>
Теперь озадачен другой проблемой - как сделать пункт меню для корзины, чтобы он активировался при заходе в нее.
Записан
kry
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 85



« Ответ #95 : 26.02.2012, 00:26:47 »

...Исправить это не смог, просто переправил оригинальный код VirtueMart и все заработало...

Спасибо, BAHbKA , натолкнул на правильное решение! Сама проблема заключалась, как я понял, в использовании SEF-компонента, который не понимает ссылок, прописанных жестко, типа:
Код
<a href="index.php?page=shop.cart&amp;option=com_virtuemart" target="_self">
, как у ecolora

Нормальный url получается из части кода оригинального файла minicart.tpl.php:
Код
<?php if (!$empty_cart && !$vmMinicart) { ?>
   <br/><br style="clear:both" /><div align="center">
   <?php echo $show_cart ?>
   </div><br/>
 
<?php }
echo $saved_cart;
?>

Переменная $show_cart, в свою очередь, формируется в файле shop.basket_short.php. Там для $show_cart, кстати, и присваивается имя "Показать корзину" ($text = $VM_LANG->_('PHPSHOP_CART_SHOW')Wink.
Цитировать
...мож кому пригодится
Записан
BAHbKA
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 39


« Ответ #96 : 26.02.2012, 00:54:47 »

Спасибо, BAHbKA , натолкнул на правильное решение! Сама проблема заключалась, как я понял, в использовании SEF-компонента, который не понимает ссылок, прописанных жестко, типа:
Код
<a href="index.php?page=shop.cart&amp;option=com_virtuemart" target="_self">
, как у ecolora

Нормальный url получается из части кода оригинального файла minicart.tpl.php:
Код
<?php if (!$empty_cart && !$vmMinicart) { ?>
   <br/><br style="clear:both" /><div align="center">
   <?php echo $show_cart ?>
   </div><br/>
 
<?php }
echo $saved_cart;
?>

Переменная $show_cart, в свою очередь, формируется в файле shop.basket_short.php. Там для $show_cart, кстати, и присваивается имя "Показать корзину" ($text = $VM_LANG->_('PHPSHOP_CART_SHOW')Wink.


Да точно, я  потом допилил ссылку которая прикреплена к картинке корзины
для этого в файле shop.basket_short.php после
Код:
$tpl->set('show_cart', @$show_cart);
добавил строчку, чтобы вытащить чистый линк без текста "показать корзину":
Код:
$tpl->set('show_cart_link', @$href);
а в самом minicart.tpl.php ссылка
Код
<a href="index.php?page=shop.cart&amp;option=com_virtuemart" target="_self">
у меня приобрела вид
Код:
<a href="<?php echo $show_cart_link ?>" target="_self">
Записан
kry
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 85



« Ответ #97 : 26.02.2012, 19:15:09 »

Да точно, я  потом допилил ссылку которая прикреплена к картинке корзины
Только хотел сам этим заняться! А тут - готовое работающее решение. Это плюс за сэкономленное мое личное время.
Записан
BAHbKA
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 39


« Ответ #98 : 27.02.2012, 00:04:36 »

Да чё там, рад помочь. В одиночку с Виртумартом никому не справиться   drink
Записан
niggatub
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 80


« Ответ #99 : 14.03.2012, 15:46:28 »

parfilov
Вопрос не вдел ли кто-нибудь модуля, что бы корзина находилась в выезжающем окошке (где-нибудь слева например) и постоянно ползала бы за прокруткой страницы, а при нажатии на иконку открывалась бы.
Очень надо (:

*Этот вопрос тоже решил, все, вопросов больше не имею (:
Блин, ну решили - здорово. Поделитесь решением)) Бъюсь третий день))
Записан
niggatub
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 80


« Ответ #100 : 14.03.2012, 18:56:00 »

Все, добился чего надо было.
Использовал метод Overmort, за что ему ресект и уважуха, плюс аналогичные благодарности ecolora за наводку на Panda Notes. Ну и само собой использовал  часто выручающий Modules Anywhere.
В итоге вышло айс Azn
Записан
kry
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 85



« Ответ #101 : 14.03.2012, 23:59:19 »

Все, добился чего надо было.
Использовал метод Overmort, за что ему ресект и уважуха, плюс аналогичные благодарности ecolora за наводку на Panda Notes. Ну и само собой использовал  часто выручающий Modules Anywhere.
В итоге вышло айс Azn
Блин, ну решили - здорово. Поделитесь решением)) Бъюсь третий день))

Вот видите, и Вы также поступаете, как многие  Grin
Решение, пожалуйста.
Записан
asimo
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 16


« Ответ #102 : 03.04.2012, 18:34:24 »

У меня такая проблема если я в настройках в оформлении заказа не поставлю галочки то в уведомлении на почту не показывает название товара. А если поставлю то почему то если зарегистрированный пользователь переходит в корзину то выходит ошибка "components/com_virtuemart/themes/default/templates/checkout/get_shipping_address.tpl.php on line 46" ?
Записан
xaocbozzz
Осваиваюсь на форуме
***

Репутация: +7/-0
Offline Offline

Сообщений: 198


Котэ просит! Не обижайте котэ!


« Ответ #103 : 18.04.2012, 09:16:27 »

Вот видите, и Вы также поступаете, как многие  Grin
Решение, пожалуйста.
Я вот так сделал.
Записан
khosmos
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #104 : 20.05.2012, 18:40:46 »

Здравствуйте.

Подскажите, пожалуйста, какие файлы необходимо изменять для упрощенного модуля корзины в Joomla 2.5.3? Не могу найти файлы administrator\components\com_virtuemart\languages\common\russian.php и
components -> com_virtuemart -> themes -> default -> theme.js.

components\com_virtuemart\themes\default\templates\common\minicart.tpl.php похож на
components\com_virtuemart\views\cart\tmpl\mini_cart.php

Спасибо.
Записан
Страниц: 1 2 3 [4]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet