标签:font out 目录 数据库表 事件 htm control 流程 new
1、建立自己的数据库表。
2、创建自己的控制器。
3、在前后台增加栏目。
4、用自己的控制器替换系统默认的(自定义业务流程)。
5、添加事件侦听器,使得系统事件时调用自己的代码。
class app_demo extends app{ var $ver = 0.8; var $name=‘样例程序‘; var $website = ‘http://www.shopex.cn‘; var $author = ‘dev@shopex.cn‘; //可选函数 //定义接管系统哪些流程,由自身的哪个类/方法去执行 //本例表示,启用后前台将把所有访问购物车的控制器请求重定向 //到本软件包内 democtl对象的cartidx方法里。 function ctl_mapper(){ return array( ‘shop:cart:index‘ => ‘demo_ctl:cartidx‘, ); } //可选函数 //侦听系统哪些事件 //此处可用关键字any表示所有事件 //本例表示: //侦听订单新建事件 -> 调用event_handle类的order_new方法执行 //侦听会员新建事件 -> 调用event_handle类的member_create方法执行 function listener(){ return array( ‘trading/order:create‘ => ‘demo_event_handler:order_new‘, ‘member/account:register‘ => ‘demo_event_handler:member_create‘, ‘any‘=>‘demo_event_handler:any‘, ); } //可选函数, 返回需要建表的信息 //本例是建立两个表, 系统会自动加前缀 sdb_ function dbtables(){ $tables[‘table_2‘] = array ( ‘columns‘ => array ( ‘controller‘ => array ( ‘type‘ => ‘varchar(100)‘, ‘required‘ => true, ‘pkey‘ => true, ‘editable‘ => false, ), ‘plugin‘ => array ( ‘type‘ =>‘varchar(100)‘, ‘required‘ => true, ‘editable‘ => false, ), ), ); $tables[‘table_1‘] = array ( ‘columns‘ => array ( ‘controller‘ => array ( ‘type‘ => ‘varchar(100)‘, ‘required‘ => true, ‘pkey‘ => true, ‘editable‘ => false, ), ‘plugin‘ => array ( ‘type‘ =>‘varchar(100)‘, ‘required‘ => true, ‘editable‘ => false, ), ), ); return $tables; } //我承认这是个非常邪恶的设计... //但你要承认它可以让你无所不能 function output_modifiers(){ return array( ‘admin:goods/product:index‘=>‘demo_modifiers:product_edit‘ ); } //重载安装时的方法... //同样可重载的还有: // uninstall -> 卸载 // enable -> 程序启动 // disable -> 程序关闭 function install(){ //别忘了调用父类的install return parent::install(); } }
class demo_event_handler{ //订单新建时本方法将被自动执行 //此处event被赋值为 order:new function order_new($event_type,$order_data){ ... } //会员新建时本方法将被自动执行 //此处event被赋值为 order:new function member_create($event_type,$member_data){ ... } //任何事件都将调用此函数 function any($event_type,$event_data){ ... } }
require(‘app_page.php‘); class demo_ctl extends app_page{ function cartidx(){ //输出模板:软件包文件夹里的cart.html $this->system; //可以调用系统入口 $this->db; //可以直接使用数据库 //载入包里的类... require(dirname(__FILE__).‘/demo_my_model_layer.php‘); $obj = new demo_my_model_layer; $this->output(‘view/cart.html‘); } }
标签:font out 目录 数据库表 事件 htm control 流程 new
原文地址:http://www.cnblogs.com/GaZeon/p/7625723.html