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删除流程分析相关推荐

  1. 魅族手机文件删除-通知栏警告流程分析(下)

    魅族手机文件删除后通知栏警告流程分析上 先将魅族手机中的关键jar包pull出来贴这里 MediaProvider.apk 链接: https://pan.baidu.com/s/1HT4FETwg9 ...

  2. 转:Android之 MTP框架和流程分析

    2019独角兽企业重金招聘Python工程师标准>>> 转载:http://www.cnblogs.com/skywang12345/p/3474206.html 概要 本文的目的是 ...

  3. igmpproxy_Linux IGMP PROXY 学习笔记 之二 igmp proxy的处理流程分析

    上一节中我们分析了linux kernel中igmp proxy相关的数据结构与实现需求分析,本节我们分析kernel中对组播数据流和组播数据的处理流程. 对于目的ip地址为组播地址的数据,可以分为两 ...

  4. 内核启动流程分析(一)编译体验

    目录 2.打补丁 3.配置 总结 配置方式 配置体验 4.编译 链接 链接脚本 5.烧写内核 1.总体概述 2.打补丁 解压 tar xjf linux-2.6.22.6.tar.bz2 打补丁,ca ...

  5. nio的epoll和selector实现流程分析

    一.NETTY底层使用的是NIO的selector和epoll进行实现的,select,poll,epoll都是IO多路复用的机制.I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个 ...

  6. HBase源码分析之HRegion上compact流程分析(三)

    在<HBase源码分析之HRegion上compact流程分析(二)>一文中,我们没有讲解真正执行合并的CompactionContext的compact()方法.现在我们来分析下它的具体 ...

  7. Spring IoC 源码系列(五)getBean 流程分析

    一.FactoryBean 用法讲解 在分析源码流程之前,我们先来看一下 FactoryBean,乍一看这家伙和 BeanFactory 很像,它们都可以用来获取 bean 对象,简单来说 Facto ...

  8. mysql 8.0 一条insert语句的具体执行流程分析(三)

    代码版本:mysql 8.0.22 编程语言:c++ && c++11 && c++14 && c++17 上一篇文章:mysql 8.0 一条inse ...

  9. K8S架构设计及工作流程分析

    Kubernetes架构设计 核心组件 api server 功能 controller manager 负责维护集群的状态 scheduler 负责资源的调度按照预定的调度策略将Pod调度到相应的机 ...

最新文章

  1. IntelliJ IDEA2016学习小结
  2. php rss xml,php – 如何使用simplexml解析RSS中的标记
  3. QT的QElapsedTimer类的使用
  4. Java OAuth开发包资料
  5. 洛谷P1061 Jam的计数法
  6. STL学习系列七:优先级队列priority_queue容器
  7. 计算机专业大学排名_最新!2020美国九大热门专业最具薪资潜力大学排名来了!...
  8. 常见的mysql集群
  9. 说说从URL输入到页面展现的过程
  10. linux系统入门命令大全,Linux常用命令5 - Linux 入门常用命令_Linux教程_Linux公社-Linux系统门户网站...
  11. 图片版坦克大战源代码之坦克类(二)
  12. 大智慧c语言dll,易语言大智慧dll模板接口
  13. Embergen 流体模拟工具
  14. 在经历了6个月的学习后,我终于上架了自己的第一款APP---酷课堂iOS群问答精华整理(201807...
  15. windows加载wim文件
  16. 通过手机使用广域网访问局域网的服务器
  17. pdf编辑器工具哪个好?好用的pdf编辑器一款就够!
  18. CTFSHOW WEB 1-100
  19. ProxmoxVE折腾记录(二)--版本升级
  20. c语言面向对象编程显示,c语言面向对象编程

热门文章

  1. python爬虫抓取淘宝图片
  2. [新星计划] Python smtplib模块 | 轻松学会收发E-mail(电子邮件)
  3. PDF怎么编辑,PDF怎么裁剪空白区域
  4. java开发环境搭建(二)Intellij IDEA工具
  5. ESP32调试USB_CDC模式
  6. Python 爬虫的工具列表大全,再不收藏下次就找不到了(第二篇)
  7. java 注解 单元测试
  8. 费森VZ200和雅马哈F310对比哪款更适合初学者,你会怎么选择?
  9. Java-----IO流【字节缓冲输出、输入流】
  10. Java工程师面试1000题1-10