ecstore删除流程分析
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进行更多的处理。
ecstore删除流程分析相关推荐
- 魅族手机文件删除-通知栏警告流程分析(下)
魅族手机文件删除后通知栏警告流程分析上 先将魅族手机中的关键jar包pull出来贴这里 MediaProvider.apk 链接: https://pan.baidu.com/s/1HT4FETwg9 ...
- 转:Android之 MTP框架和流程分析
2019独角兽企业重金招聘Python工程师标准>>> 转载:http://www.cnblogs.com/skywang12345/p/3474206.html 概要 本文的目的是 ...
- igmpproxy_Linux IGMP PROXY 学习笔记 之二 igmp proxy的处理流程分析
上一节中我们分析了linux kernel中igmp proxy相关的数据结构与实现需求分析,本节我们分析kernel中对组播数据流和组播数据的处理流程. 对于目的ip地址为组播地址的数据,可以分为两 ...
- 内核启动流程分析(一)编译体验
目录 2.打补丁 3.配置 总结 配置方式 配置体验 4.编译 链接 链接脚本 5.烧写内核 1.总体概述 2.打补丁 解压 tar xjf linux-2.6.22.6.tar.bz2 打补丁,ca ...
- nio的epoll和selector实现流程分析
一.NETTY底层使用的是NIO的selector和epoll进行实现的,select,poll,epoll都是IO多路复用的机制.I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个 ...
- HBase源码分析之HRegion上compact流程分析(三)
在<HBase源码分析之HRegion上compact流程分析(二)>一文中,我们没有讲解真正执行合并的CompactionContext的compact()方法.现在我们来分析下它的具体 ...
- Spring IoC 源码系列(五)getBean 流程分析
一.FactoryBean 用法讲解 在分析源码流程之前,我们先来看一下 FactoryBean,乍一看这家伙和 BeanFactory 很像,它们都可以用来获取 bean 对象,简单来说 Facto ...
- mysql 8.0 一条insert语句的具体执行流程分析(三)
代码版本:mysql 8.0.22 编程语言:c++ && c++11 && c++14 && c++17 上一篇文章:mysql 8.0 一条inse ...
- K8S架构设计及工作流程分析
Kubernetes架构设计 核心组件 api server 功能 controller manager 负责维护集群的状态 scheduler 负责资源的调度按照预定的调度策略将Pod调度到相应的机 ...
最新文章
- IntelliJ IDEA2016学习小结
- php rss xml,php – 如何使用simplexml解析RSS中的标记
- QT的QElapsedTimer类的使用
- Java OAuth开发包资料
- 洛谷P1061 Jam的计数法
- STL学习系列七:优先级队列priority_queue容器
- 计算机专业大学排名_最新!2020美国九大热门专业最具薪资潜力大学排名来了!...
- 常见的mysql集群
- 说说从URL输入到页面展现的过程
- linux系统入门命令大全,Linux常用命令5 - Linux 入门常用命令_Linux教程_Linux公社-Linux系统门户网站...
- 图片版坦克大战源代码之坦克类(二)
- 大智慧c语言dll,易语言大智慧dll模板接口
- Embergen 流体模拟工具
- 在经历了6个月的学习后,我终于上架了自己的第一款APP---酷课堂iOS群问答精华整理(201807...
- windows加载wim文件
- 通过手机使用广域网访问局域网的服务器
- pdf编辑器工具哪个好?好用的pdf编辑器一款就够!
- CTFSHOW WEB 1-100
- ProxmoxVE折腾记录(二)--版本升级
- c语言面向对象编程显示,c语言面向对象编程