Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
dmx102 17.05.2005 12:23
@CLASS shop #место исполнения __ действие #Инициализируем класс, лог событий, пользователя, заодно и строку подключения к SQL @init[connect] $self.connect[$connect] $date_now[^date::now[]] $self.user_id[^math:md5[$env:REMOTE_ADDR $date_now.year $date_now.month $date_now.day]] $self.uuid[^math:uuid[]] $self.event[^table::create{event}] ^self.event.append{is_init} #Создаем таблицы в текущей Базе Данных @install[] ^connect[$self.connect]{ ^void:sql{CREATE TABLE `catalogue` ( `cat_id` bigint(20) NOT NULL auto_increment, `level` bigint(20) NOT NULL default '0', `name` text NOT NULL, `description` text NOT NULL, `price` int(11) NOT NULL default '0', `photo_s` text, `photo` text, `vendor` text, `art` text NOT NULL, PRIMARY KEY (`cat_id`) ) TYPE=MyISAM} ^void:sql{CREATE TABLE `basket` ( `bas_id` bigint(20) NOT NULL auto_increment, `cat_id` bigint(20) NOT NULL default '0', `quantity` int(11) NOT NULL default '0', `user_id` varchar(36) NOT NULL default '', PRIMARY KEY (`bas_id`) ) TYPE=MyISAM} ^void:sql{CREATE TABLE `orders` ( `ord_id` bigint(20) NOT NULL auto_increment, `user_id` text, `contacts` text, `date` timestamp(14) NOT NULL, PRIMARY KEY (`ord_id`) ) TYPE=MyISAM} ^self.event.append{is_install} } #Добавляем товар в корзину @bas_add[action;cat_id;quantity] ^if($action eq "add"){ ^if(def $cat_id){ ^if(def $quantity){ ^connect[$self.connect]{ ^void:sql{INSERT INTO basket (cat_id, quantity, user_id) VALUES ('^taint[sql][$cat_id]', '^taint[sql][$quantity]', '^taint[sql][$self.user_id]')} ^self.event.append{is_bas_add} } } } } #Удаляем товар из корзины @bas_del[action;bas_id] ^if($action eq "del"){ ^if(def $bas_id){ ^connect[$self.connect]{ ^void:sql{DELETE FROM basket WHERE bas_id='^taint[sql][$bas_id]' AND user_id='^taint[sql][$self.user_id]'} ^self.event.append{is_bas_del} } } } #Изменяем кол-во товара в корзине @bas_edit[action;bas_id;quantity] ^if($action eq "edit"){ ^if(def $bas_id){ ^if(def $quantity){ ^connect[$self.connect]{ ^void:sql{UPDATE basket SET quantity='^taint[sql][$quantity]' WHERE user_id='^taint[sql][$self.user_id]' AND bas_id='^taint[sql][$bas_id]'} ^self.event.append{is_bas_edit} } } } } #Показаваем содержимое корзины @bas_show[] ^connect[$self.connect]{ $basket[^table::sql{SELECT * FROM basket, catalogue WHERE catalogue.cat_id=basket.cat_id AND basket.user_id='^taint[sql][$self.user_id]'}] $result[$basket] ^if(def $result){^self.event.append{is_bas_show}} } #Показываем каталог с учетом только подгруппы @cat_show[level] ^if(def $level){ ^connect[$self.connect]{ $catalogue[^table::sql{SELECT * FROM catalogue WHERE level LIKE '^taint[sql][$level]%'}] $result[$catalogue] ^if(def $result){^self.event.append{is_cat_show}} } } #Показываем список заказов @ord_show[] ^connect[$self.connect]{ $orders[^table::sql{SELECT * FROM orders ORDER BY ord_id DESC}] $result[$orders] ^if(def $result){^self.event.append{is_ord_show}} } #Показываем подробное описание товара @cat_info[cat_id] ^if(def $cat_id){ ^connect[$self.connect]{ $catalogue[^table::sql{SELECT * FROM catalogue WHERE cat_id='^taint[sql][$cat_id]'}] $result[$catalogue] ^if(def $result){^self.event.append{is_cat_info}} } } #Показываем описание заказа @ord_info[action;ord_id] ^if($action eq "info"){ ^if(def $ord_id){ ^connect[$self.connect]{ $orders[^table::sql{SELECT * FROM basket, catalogue, orders WHERE catalogue.cat_id=basket.cat_id AND basket.user_id=orders.user_id AND orders.ord_id='^taint[sql][$ord_id]'}] $result[$orders] ^if(def $result){^self.event.append{is_ord_info}} } } } #Оформляем заказ @bas_confirm[action;contacts] ^if($action eq "order"){ ^if(def $contacts){ ^connect[$self.connect]{ ^void:sql{UPDATE basket SET user_id='$self.uuid' WHERE user_id='^taint[sql][$self.user_id]'} ^void:sql{INSERT INTO orders (user_id, contacts) VALUES ('$self.uuid', '^taint[sql][$contacts]')} ^self.event.append{is_bas_confirm} } } } #Обработка событий @events[] $result[$self.event]