Не давно интересовал этот же вопрос.
Нарыл только то что если нужна еще одна корзина на странице, то ей нужно назначить другой
id.
По умолчанию
id для работы корзины
show_cart
Файл:
modules/cart/views/cart.view.show_block.php
echo '<span id="show_cart" class="js_show_cart">'.$this->get('info', 'cart', $result).'</span>';
Нашел что за работу этого
id отвечает файл
modules/shop/shop.action.php
Кусок кода:
Custom::inc('modules/cart/cart.model.php');
$model = new Cart_model($this->diafan);
$cart_tpl = $model->show_block();
$this->result["data"] = array("#show_cart" => $this->diafan->_tpl->get('info', 'cart', $cart_tpl));
У меня получилось добиться работы двух корзин одновременно на одной странице.
Добавив 2 новыx view файла в папке
modules/cart/views
cart.view.show_block_item.php и
cart.view.info_item.php. и прописав в файле отвечающему за вывод корзины id "#show_cart2"
Файл 1:
cart.view.show_block_item.php
echo '<span id="show_cart2" class="js_show_cart">'.$this->get('info_item', 'cart', $result).'</span>';
Файл 2 отвечает за вывод данных внутри корзины, там я особо ничего не менял.
После чего вернулся к файлу
modules/shop/shop.action.php
И добавил в кусок кода
id
Custom::inc('modules/cart/cart.model.php');
$model = new Cart_model($this->diafan);
$cart_tpl = $model->show_block();
$this->result["data"] = array("#show_cart, #show_cart2" => $this->diafan->_tpl->get('info', 'cart', $cart_tpl));
Работать то работает, но не должным образом.
Имеется страница карточки товара и на ней в шапке сайта расположены корзина и в самой карточке товара рядом с ценной вторая корзина которая выводит сумму заказа.
При клике на кнопку "Купить" стандартная корзина которая выводиться через файлы
cart.view.show_block.php и
cart.view.info.php
Берет оформление от второй корзины которую я добавил. (То есть меняется дизайн)
Проблема как я понял в переменной
info которые находятся в файлах:
Файл:
modules/shop/shop.action.php
Custom::inc('modules/cart/cart.model.php');
$model = new Cart_model($this->diafan);
$cart_tpl = $model->show_block();
$this->result["data"] = array("#show_cart" => $this->diafan->_tpl->get('info', 'cart', $cart_tpl));
И файл
modules/cart/cart.view.show_block.php
echo '<span id="show_cart" class="js_show_cart">'.$this->get('info', 'cart', $result).'</span>';
Эта переменная отвечает за подключенный файл
modules/cart/cart.view.info.php который выводит содержание корзины (Цену, форму)
Как написано выше я создал для новой корзины 2 view файла, в которой переменная
info называлась
info_item
----
Так как я не гуру в программировании, я оставил файлы 2-ой корзины и вывел ее в карточке товара через
<insert name="show_block" module="cart" template="item">
и оформил красиво, а что бы посетитель мог узнать цену, рядом сделал кнопочку "Рассчитать стоимость" при клике на которую происходит перезагрузка страницы.
----
Я бы тоже не прочь узнать как можно вывести вторую корзину на странице сайта без перезагрузки страницы.