Форум русской поддержки Joomla!® CMS
09.12.2016, 04:07:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2 3 4   Вниз
  Добавить закладку  |  Печать  
Автор

Упрощенный модуль корзины

 (Прочитано 50582 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ecolora
Живу я здесь
******

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

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


творец


« : 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 » Записан
 
frion
Осваиваюсь на форуме
***

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

Сообщений: 33


« Ответ #1 : 31.03.2010, 12:03:50 »

Отличная тема!!
Записан
ecolora
Живу я здесь
******

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

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


творец


« Ответ #2 : 31.03.2010, 12:32:25 »

Я рад что тема оказалась полезна.
Сколько полезных советов тут на форуме дал... а хоть бы хто карму увеличил. :-)
Это которая возле аватара. :-)
Записан
Garadzenec
Новичок
*

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

Сообщений: 8


« Ответ #3 : 21.04.2010, 00:35:55 »

Спасибо огромное, очень пригодилось =))
Респект и уважуха!
Записан
terr
Живу я здесь
******

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

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


Ученик html-я


« Ответ #4 : 29.04.2010, 21:25:44 »

+1 ковсе но вот как паменять вид добавления в корзину из карточки товара?
Записан
ecolora
Живу я здесь
******

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

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


творец


« Ответ #5 : 30.04.2010, 09:31:49 »

Код прямоугольника со всеми "причиндалами" и надписью "В корзину", выводимого на странице описания товара, содержится в файле:
components/com_virtuemart/themes/default/templates/product_detailes/includes/addtocart_form.tpl.php.
При этом сам прямоугольник с границами - это:
Код:
<div class="vmCartContainer">
Стиль для которого задаётся в файле:
components/com_virtuemart/themes/default/theme.css
а именно:
Код:
.vmCartContainer { /* Cart Container */
width: auto;
float: left;
background: #ADD8E6;
border: 1px solid #000;
padding: 3px;
}

Меняйте стили и код как Вам угодно. :-) Я ограничился тем, что убрал голубой цвет и сделал серый бордюр:

Код:
.vmCartContainer { /* Cart Container */
width: auto;
float: left;
border: 1px solid #c0c0c0;
padding: 3px;
}

А также закомментировал надпись на кнопке в Корзину:

Код:
<input type="submit" class="<?php echo $button_cls ?>" value="<?php //echo $button_lbl ?>" title="<?php echo $button_lbl ?>" />

И заменил картинку корзины на картинку другого цвета и написал на ней "В корзину".
Картинка находится тут "components/com_virtuemart/themes/default/images/add-to-cart_blue.gif
Там кстати уже лежат картинки с корзиной других цветов.
« Последнее редактирование: 30.04.2010, 09:42:33 от ecolora » Записан
testosterone
Захожу иногда
**

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

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


« Ответ #6 : 04.05.2010, 14:35:00 »

Не хочется плодить тем по корзине. А может ответите где редактируется и изменяется AJAX элемент при добавлении в корзину товара.
Записан
andersan2000
Осваиваюсь на форуме
***

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

Сообщений: 64


« Ответ #7 : 17.05.2010, 13:49:18 »

+1 прямо читаешь мысли.респект!
Записан
Sorbon
Осваиваюсь на форуме
***

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

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



« Ответ #8 : 10.06.2010, 20:29:36 »

ecolora
и от меня СПАСИБО !  Wink
Записан
delomac
Осваиваюсь на форуме
***

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

Сообщений: 59


« Ответ #9 : 29.06.2010, 13:05:08 »

Добрый день.
Возник вопрос. А как сделать 2 модуля корзины, чтобы при этом 1 из них был стандартный (с перечнем добавленного товара), а второй тот, который Вы предложили. Есть конечно вариант создать ещё 1 файлик shop.bascet_short.php с другим именем и ещё 1 шаблон и ещё 1 модуль, но это как-то топорно, а хочется какого-нибудь простого решения.

Заранее спасибо.
Записан
ecolora
Живу я здесь
******

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

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


творец


« Ответ #10 : 29.06.2010, 19:32:29 »

Дополнил первое сообщение текстом и вложением. :-)

Цитировать
Вариант II.
Если Вас устраивает существующий модуль корзины и Вы хотели бы иметь в дополнение к нему ещё и упрощённый вариант, то специально для Вас приложил модуль мини-корзины, с описанной выше функциональностью.
P.S. Картинка корзины модуля лежит по адресу /modules/mod_virtuemart_cart_mini/menu_logo.gif. Либо можете заменить её сразу в приложенном архиве до его установки.
Записан
delomac
Осваиваюсь на форуме
***

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

Сообщений: 59


« Ответ #11 : 02.07.2010, 13:16:30 »

Большое спасибо за модуль, тут + обязательно! Но... есть проблема...
по сути решение сам придумал, чтобы 2 модуля корзины на сайте было и Ваш и стандартный, для этого не нужно 2 раз shop.basket_short.php грузить, достаточно в модуле присвоить переменной какой-нибудь значение до инклуда, а потом в shop.basket_short.php сделать условие на проверку значения этой переменной и, в зависимости от него, fetch в нужный шаблон, ну и шаблон соответственно новый сделать. Но суть проблемы в том, что при добавлении товара в корзину в обоих модулях отображается полная информация, а при обновлении страницы в упрощённом варианте все становится как нужно. При добавлении следующего товара такая же ситуация. С чем это может быть связано и как все-таки сделать 2 разных модуля корзины, чтобы они сразу отображали все как нужно.
Записан
ecolora
Живу я здесь
******

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

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


творец


« Ответ #12 : 03.07.2010, 04:24:33 »

при добавлении товара в корзину в обоих модулях отображается полная информация, а при обновлении страницы в упрощённом варианте все становится как нужно.
Вы могли бы дать адрес страницы с этими 2мя модулями: моим и стандартным? Я ведь проверял на сайте с Виртом. Вроде всё работало как часы. Точно и без глюков. Сейчас модули корзины отключены, потому что заказчику на данном этапе нужен каталог, а не магазин. Но если Вы свяжетесь со мной по аське, могу на пару минут включить оба модуля и Вы посмотрите как это работает на сайте моего заказчика. Ну и хотелось бы взглянуть как эти 2 модуля работают одновременно на Вашем сайте. Лучше аськой... через форум долго договариваться. Уверен, что проблему, о которой Вы говорите можно решить.
Записан
delomac
Осваиваюсь на форуме
***

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

Сообщений: 59


« Ответ #13 : 05.07.2010, 14:07:36 »

Большое спасибо за участие. Я тоже верю, что проблему можно решить. Свяжусь с Вами обязательно, но не раньше 20 числа, так как сегодня уезжаю в места, где не будет инета.
PS + пока не могу поставить, так как мало постов у меня Azn
Записан
Unikal
Осваиваюсь на форуме
***

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

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


http://yacht-skipper.ru


« Ответ #14 : 10.07.2010, 04:41:04 »

Установил себе вот этот модуль http://extensions.joomla.org/extensions/extension-specific/virtuemart-extensions/virtuemart-orders/10883 то что доктор прописал но есть один глюк все языковые переменные задаются в настройках модуля все вроде работает нормально но в момент добавления товара в корзину (ajax) языковые переменные слетают и пишется все по английски в модуле если просто перегрузить страницу опять все встает по русски. Помогите пожалуйста разобраться с этим глюком
Записан
Андрій
Новичок
*

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

Сообщений: 7


« Ответ #15 : 20.07.2010, 13:45:30 »

респект !
Записан
delomac
Осваиваюсь на форуме
***

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

Сообщений: 59


« Ответ #16 : 02.08.2010, 20:44:33 »

Возвращаясь к проблеме с неверным отображением упрощённой корзины. Если отключить в настройках магазина использование AJAX для добавления в корзину, то всё работает как надо, но неудобно. А если не отключать, то упрощённая корзина отображается как и обычная (со списком товаров), а после перезагрузки страницы начинает отображаться как нужно (в упрощённой форме). Весь форум перерыл, что только не делал, но если AJAX включен, то работает не так...
Подскажите, может кто сталкивался с подобным.
Записан
KC
Новичок
*

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

Сообщений: 1


« Ответ #17 : 03.08.2010, 14:24:47 »

2 delomac:
отредактируй стандартный модуль корзины. всё работает.
Записан
delomac
Осваиваюсь на форуме
***

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

Сообщений: 59


« Ответ #18 : 05.08.2010, 16:56:39 »

А что отредактировать?
При включенном AJAX в любом случае сначала список отображает...
Записан
yasti
Осваиваюсь на форуме
***

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

Сообщений: 44


« Ответ #19 : 06.08.2010, 11:46:54 »

А что отредактировать?
При включенном AJAX в любом случае сначала список отображает...

deplomac, я присоединяюсь к твоему вопросу.

Автору - спасибо за корзину, но, действительно, когда добавляешь товары, корзина разворачивается и отображает весь список. А маленькой опять становится только после перезагрузки страницы.
Записан
ecolora
Живу я здесь
******

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

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


творец


« Ответ #20 : 06.08.2010, 11:56:43 »

Народ.... ну некогда править... позже. Занят другим проектом.. позже возможно поправлю. А пока внесите изменения правкой кода стандартного модуля, а не того, который прилагается.

Тогда точно будет работать как нужно.
Записан
yasti
Осваиваюсь на форуме
***

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

Сообщений: 44


« Ответ #21 : 06.08.2010, 12:34:59 »

 SmileyДа, так действительно все нормально.
Спасибо!
А как сделать, чтобы картинка полной корзины отличалась от пустой?
Записан
delomac
Осваиваюсь на форуме
***

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

Сообщений: 59


« Ответ #22 : 06.08.2010, 16:48:56 »

А что править в стандартном модуле? Подскажите дилетанту...
Записан
yasti
Осваиваюсь на форуме
***

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

Сообщений: 44


« Ответ #23 : 06.08.2010, 17:38:43 »

Замени весь код на код в 1 топике.
Там же написано.
Записан
k2004
Осваиваюсь на форуме
***

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

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



« Ответ #24 : 09.08.2010, 18:41:58 »

Установил Ваш модуль - мини.. Скажу честно, это то, что я искал! Спасибо и + !))) Только есть еще вопрос - как убрать надпись-ссылку "корзина" или изменить ее цвет, так как у меня она сливается с цветом шаблона. Заранее спасибо



Записан
Unikal
Осваиваюсь на форуме
***

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

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


http://yacht-skipper.ru


« Ответ #25 : 19.08.2010, 23:15:27 »

Код:
<?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>
В вашем коде пропущены теги закрывающие ячейки таблицы </td> а также закрывающие строку таблицы </tr>
Правильнее будет так
Код:
<?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>   
    <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; ?>
</td>
    </tr>
    </table>
а вообще лучше сверстать слоями под свои нужды
Записан
ecolora
Живу я здесь
******

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

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


творец


« Ответ #26 : 20.08.2010, 13:13:32 »

Цитировать
В вашем коде пропущены теги закрывающие ячейки таблицы </td> а также закрывающие строку таблицы </tr>

Зачем они нужны? Современным браузерам это не требуется.
Записан
Unikal
Осваиваюсь на форуме
***

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

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


http://yacht-skipper.ru


« Ответ #27 : 20.08.2010, 14:07:23 »

Зачем они нужны? Современным браузерам это не требуется.
Как зачем во первых не у всех современные браузеры, во вторых есть стандарты которых нужно придерживаться для того чтобы код был валидным
Записан
Rap13
Новичок
*

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

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


« Ответ #28 : 21.08.2010, 10:28:20 »

Огромное Спасибо!
Записан
Romashka
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 117



« Ответ #29 : 23.08.2010, 10:15:28 »

А если у меня нет папки administrator\components\com_virtuemart\languages\?? Хотя у  меня интерфейс VirtueMart 1.1.5 русский, но папки languages там вообще нет (( Скачала из интернета Language_Pack_for_VirtueMart_1.1.4.zip (2,013Мб), не устанавливается - пишет "Установочный XML-файл не найден в пакете". Что делать? Как установить эту папку languages?

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

Powered by SMF 1.1.21 | 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