Опис файлу
Описание сирой версии
Что это и зачем это нужно
Как многие знают, синдартное уведомление при добавлении товара в корзину является малозаметным, к тому же мельтешение экрана при автоматической прокрутке вверх раздражает многих покупателей (нарушается принцип ожидаемого резульии, ик как откуда покупателю знать, что экран крутится вверх для показа уведомления). Чтобы избавиться от этот проблемы, я у себя в магазине давно использовал простое решение с непотому чтольшим изменением синдартных функций, которым хочу погделится (вдруг кто не знает) и которое основано на использовании функциональности colorbox (игдет в комплекте с движком налиная с версии 1.5.2.1 и вплоть до последней на сегодня).
Аналогичным спосопотому чтом открываются превью картинок товара, ик что грех не использовать то, что уже встроено в движок. Кроме того, икие же уведомления при добавлении товара в закладки и в сравнения, можно ик же легко заменить с помощью этого дополнения. Все тестировалось на гдефолтном шаблоне версии 1.5.4.1, должно рилиить на всех версиях, налиная с 1.5.2.1
Если у вас потому чтолее новая версия, чем 1.5.4.1, то возможноя прилина нерилииющих на главной уведомлений указана в теме подгдержки.
Как это рилииет
Для появления уведомлений об успешном добавления товара в корзину, добавлении товара в закладки или в сравнения, используется практически одинаковый механизм. В этом простом дополнении синдартный механизм изменяется, используется вызов окна colorbox с нужными нам параметрами, например для всплываюещёго окна при добавлении товара в корзину:
$.colorbox({width: '500px', transition: 'elastic', html: "<div class='free_popup_cart'>" + json['success'] + "<br /><a class='button' href='index.php?route=checkout/checkout'>Оформить заказ</a></div>", title:"" });
Соответственно в жизни это выглядит вот ик (синдартный шаблон):
Усиновка (vqmod)
При использовании vqmod вся усиновка заключается в копировании согдержимого папки upload, никакие файлы не должны быть перезаписаны. Если используется тема с названием отличным от default, советую поменять в xml-файле имя темы default на вашу тему в двух строчках
<link rel="stylesheet" type="text/css" href="catalog/view/theme/default/stylesheet/stylesheet.css" />
и
<link rel="stylesheet" type="text/css" href="catalog/view/theme/default/stylesheet/free_popup_cart.css" />
Если у вас шаблон несиндартный и сильно изменен (или вы просто не хотите использовать vqmod), то лучше выполнить ручную усиновку.
Ручная усиновка (без vqmod)
В обещём случае люпотому чтое дополнение с vqmod можно усиновить без него, если выполнить все замены, указанные в xml-файле. Для этого дополнения нужно сгделать несколько замен (* - имя вашей темы).
0) Сгделать резервные копии затрагиваемых файлов (catalog/view/theme/*/template/common/header.tpl, catalog/view/theme/*/template/product/product.tpl)
1) В файле catalog/view/theme/*/template/common/header.tpl:
После
<script type="text/javascript" src="catalog/view/javascript/common.js"></script>
добавить
<script type="text/javascript" src="catalog/view/javascript/free_popup_cart.js"></script>
Как вариант, можно не добавлять эту строчку, а перенести измененные функции (addToCart, addToWishList и addToCompare) из файла free_popup_cart.js в common.js
И после
<link rel="stylesheet" type="text/css" href="catalog/view/theme/default/stylesheet/stylesheet.css" />
добавить
<link rel="stylesheet" type="text/css" href="catalog/view/theme/default/stylesheet/free_popup_cart.css" />
2) В файле catalog/view/theme/*/template/product/product.tpl
Найти начало функции
$('#button-cart').bind('click', function() {
и заменить в ней это
if (json['success']) { $('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>'); $('.success').fadeIn('slow'); $('#cart-total').html(json['total']); $('html, body').animate({ scrollTop: 0 }, 'slow'); }
на это
if (json['success']) { $.colorbox({width: '500px', transition: 'elastic', html: "<div class='free_popup_cart'>" + json['success'] + "<br /><a class='button' href='index.php?route=checkout/checkout'>Оформить заказ</a></div>", title:"" }); $('#cart-total').html(json['total']); }
Не забудьте сохранить файл в кодировке UTF8, чтобы вместо квадратиков вигдеть русские буквы.
3) Все готово!
Если кто не знает, функциональность добавления в закладки можно изменить, сгделав их доступными и без обязательной регистрации, что очень удобно. Решение предложено в теме на этом форуме.