ecstore删除流程分析
来源:互联网 发布:教学过程最优化理论 编辑:程序博客网 时间:2024/05/21 06:41
1、最终删除的地方
在app/desktop/lib/system/recycle.php文件中dorecycle方法
2、model中的方法,自定义删除前后的操作,一般位于app/app名称/model文件夹中,参考系统自带的会员处理
(1)pre_recycle方法,删除前的操作
(2)suf_recycle方法,删除后的操作
(3)title_recycle方法,进入回收站中显示的标题
##进回收站前操作 function pre_recycle($data){ $falg = true; foreach($data as $val){ if($val['advance']>0) { $this->recycle_msg = '会员账户有余额,不能删除'; $falg = false; break; } } return $falg;}
3、进入回收站
public function title_recycle($sdf) { if(!$sdf) return ; if($sdf['pam_account']['mobile']){ $login_name = $sdf['pam_account']['mobile']['login_account']; } if($sdf['pam_account']['email']){ $login_name = $sdf['pam_account']['email']['login_account']; } if($sdf['pam_account']['local']){ $login_name = $sdf['pam_account']['local']['login_account']; } return $login_name; }
4、dorecycle方法
function dorecycle($mdl_name,$filter=null){ $oRecycle = app::get('desktop')->model('recycle'); list($app_id,$table) = explode('_mdl_',$mdl_name); $o = app::get($app_id)->model($table); $recycle_item = array(); $recycle_item['drop_time'] = time(); $recycle_item['item_type'] = $o->table_name(); $dbschema = $o->get_schema(); $textColumn = $dbschema['textColumn']; $pkey = $dbschema['idColumn']; foreach($dbschema['columns'] as $k=>$col){ if($col['is_title']&&$col['sdfpath']){ $textColumn = $col['sdfpath']; break; } } $rows = $o->getList('*',$filter,0,-1); if(method_exists($o, 'pre_recycle')){ if(!$o->pre_recycle($rows)){ return false; } } $menus = app::get('desktop')->model('menus'); $permission_id = $menus->permissionId($_GET); foreach($rows as $k=>$v){ $pkey_value = $v[$pkey]; $v = $o->dump($v[$pkey],'*','delete'); $recycle_item['item_sdf'] = $v; $recycle_item['app_key'] = $app_id; $recycle_item['item_title'] = $v[$textColumn]; if(method_exists($o,'title_recycle')) $recycle_item['item_title'] = $o->title_recycle($v); $tmp = $recycle_item; $tmp['permission'] = $permission_id; $return = $oRecycle->save($tmp); unset($tmp[$pkey]); $o->delete(array($pkey=>$pkey_value)); #↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓记录管理员操作日志@lujy↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ if($obj_operatorlogs = kernel::service('operatorlog.system')){ if(method_exists($obj_operatorlogs,'dorecycle')){ $obj_operatorlogs->dorecycle($v); } } #↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑记录管理员操作日志@lujy↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ } if(method_exists($o, 'suf_recycle')){ if(!$o->suf_recycle($_POST)){ return false; } } $services = kernel::serviceList('desktop_finder_callback.' . get_class($o)); foreach($services AS $service){ if(method_exists($service, 'recycle')){ $service->recycle($_POST); } } return true; }
还可以注册services进行更多的处理。
0 0
- ecstore删除流程分析
- ecstore后台finder的取数据流程
- 快速下单!简化EcStore的购物结算流程
- ecstore关于后台桌面运营分析报表显示空白
- android 输入法删除输入框里面字符流程分析
- Linux 路由 学习笔记 之四 路由删除流程分析
- 方便代理下单的EcStore收货地址一键分析插件,同时支持淘宝/京东/一号店
- ECSTORE 新建APP应用
- 【ecstore】gift基础知识
- 【ecstore】gift控制器
- ecstore二次开发技巧
- ecstore 定时任务配置
- ecstore 增加页面类型
- ecstore-隐藏版权信息
- ecstore-改善验证码
- Ecstore官方视频教程
- Ecstore官方视频教程
- JBPM发布流程、查询流程、删除流程
- leetCode---Remove Nth Node From End of List
- 初学angularjs
- KNN算法实例---手写数字识别
- JSP request对象 表单
- SOI技术
- ecstore删除流程分析
- bzoj2957 楼房重建
- (总结)Nginx配置文件nginx.conf中文详解
- MFC学习--属性页的创建
- 第二章 变量,数据类型和运算符
- RxJava2.0教程(四)
- MySQL(3)
- java 实现阿里大于 发送短信demo
- 基本HTML知识和标签的注意事项(部分学习笔记)--Day1