Главная | Новости | Блог | Ответы | Учебник | Правила |
Вы здесь: ГлавнаяУчебникКорзина
Вход | Регистрация
Предназначена для запоминания любых объектов. Например, для сравнения товаров или для оформления покупки.
Система поддерживает на сайте неограниченное количество корзин.
Каждая корзина имеет свое имя.
Для работы корзины используются два модуля: "Инициализация корзины" и "Добавить в корзину".
Инициализация корзины должна происходить на всех страницах с корзиной перед обработкой данных. Для этого этот модуль нужно установить блоком перед генерацией данных.
Инициализатор обработает все корзины и запишет их в переменные вида {BASKET...}
{BASKET[namebasket].count} - количество различных объектов в корзине с названием namebasket;
{BASKET[namebasket].num} - количество объектов с учетом количества каждого (в корзину можно положить несколько одинаковых объектов);
{BASKET[namebasket].amount} - стоимость корзины;
{BASKET[namebasket].listnum} - строка с перечислением всех объектов и их количества в виде "idID1=NUM1;idID2=NUM2" , где ID - идентификатор, NUM - количество. Используется для определения, есть ли объект в корзине.
{BASKET[namebasket].listids} - строка с перечислением через запятую идентификаторов объектов. Используется для выборки данных.
Пример использования корзины для обычных закладок.
1. Нужно создать специальный невидимый раздел ajax с дизайном ajax. В него поместить модуль tobasket ("Добавить в корзину"). В примере это /ajax/basket/
2. На разделе с товарами добавить блок инициализации корзины.
3. В строчку вывода нужно добавить галочку <input id='testbasket_{_id}' name='testbasket_{_id}' type='checkbox' onclick='javascript:AddTestBasket({_id});' <?ifcmp({BASKET[testbasket].listnum}<-id{_id}=)?> checked='1'<?endif?>/>
4. В общий шаблон вывода данных структуры нужно добавить <script language="JavaScript">function AddTestBasket(id){div=document.getElementById('testbasket_'+id);if(div)ajax_loadInto("/ajax/basket/?id="+id+"&basket=testbasket&num="+((div.checked)?1:0),"testbasket");};</script>
<a href='/путьдовыводакорзины/'><div id="testbasket"><?if({BASKET[testbasket].num})?>{BASKET[testbasket].num}<?else?>0<?endif?></div></a>
5. Создать новый вид вывода товаров для корзины с условием: поле ID, условие "в перечисленных", значение <?if({BASKET[testbasket].listids})?>{BASKET[testbasket].listids}<?else?>0<?endif?>
6. Разместить вывод в разделе "путьдовыводакорзины", и в этом же разделе обязательно должна быть инициализация корзины.
В файле шаблонов tobasket шаблон nameparam должен иметь значение basket. Если там указано другое значение, то в пункте "2" basket=testbasket нужно заменить другоезначение=testbasket

Работает это так.
В месте вывода корзины (3) будет выводиться цифра, сколько в корзине элементов. Эти данные берутся из переменных, которые сформированы модулем инициализации корзины.
На месте занесения в корзину (1) выводится галочка. Если объект уже есть в корзине, то галочка будет автоматически ставиться. Это делается условием.
При нажатии на галочку вызывается JavaScript функция, которая анализирует, нажата эта галочка или нет, и передает эти данные модулю занесения в корзину по адресу /ajax/basket/ (адрес может быть другим).
После загрузки аджакса в куку ставится новое содержимое корзины, а на месте слоя <div id="testbasket"></div> выводится количество объектов.
После перезагрузки страницы модуль инициализации берет уже новую корзину и выставляет галочки возле объектов согласно их наличию в корзине.
При переходе на раздел корзины выводится список объектов, которые есть в корзине по условию (4). Если корзина пуста, то ничего выведено не будет.

Еще есть модуль вывода корзины. И шаблоны вывода информации о корзине.

Можно делать корзину без использования javascript, а с помощью ссылок на раздел с модулем "Положить в корзину" и обратной пересылки.
О нас | Написать нам | Сообщить о правонарушении |

Создать свой сайт © Конструктор сайтов Letnick.com 2006-2017