parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Вот оно :)

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]