织梦二次开发

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1068|回复: 0

[共用功能] 织梦网站栏目管理“删除”栏目功能分析

[复制链接]

1046

主题

1109

帖子

5334

积分

超级版主

Rank: 8Rank: 8

金币
256
贡献
3959
发表于 2015-6-2 13:23:29 | 显示全部楼层 |阅读模式
“删除”栏目如下图所示。
QQ截图20150602132319.png

  “删除”栏目功能类似“移动”栏目功能,特别是里面用到了“窗口类对话框”类,几乎完全一样,但是,“删除”栏目又比“移动”栏目相比简单少,但从代码多少来说,一点也不比“移动”功能弱,而且,用到的代码也比较多,用到的sql知道也不少。

  我们想一下就知道,移动栏目无非就是把reid转换一下,更新一下缓存和数据库表就可以实现了,而“删除”功能要复杂的多了,“删除”功能不仅删除表中数据,还要删除缓存还要删除具体的html代码,但是,在最新版本中织梦系统已经把这一功能删掉禁用了,这样是为了安全考虑吧。

删除功能所在文件:/dede/catalog.del.php

  其实,在多个教程里面我们已经对这个文件提到过多次,而且,都以这个文件作为例子了,而且,这个功能代码大体上与“移动”功能差不多,特别是窗体的创建道理完全一样,所以,这里不对具体代码分析了,如果想看具体分析,请进到“移动”功能分析教程里面去看一下,而且,也有相关的窗口对话框类的详细分析。

  只对这个文件里同的重点功能分析,只要把这些重点内容会了,其它,自然就会了。

源码分析:

  1、引入配置文件config.php,这是必须的,因为,后台我们的公共配置文件都在这里面了,所以,后台的操作都要引入这个文件。

  2、权限检测,这是必须的,不要随便登录进来的人都可以删除栏目,那太危险了。

       //检查权限许可
    CheckPurview('t_Del,t_AccDel');

      //检查栏目操作许可
    CheckCatalog($id,"你无权删除本栏目!");

  3、删除文件$ut->DelType($id,$delfile),我们在后台之所以,能够删除文件就是因为,这个方法起的作用,也就是说,如果没有这个函数,那么,我们就无法删除栏目,这是这个“删除”功能核心代码,在这个方法里面有二个参数,一个是栏目$id,也就是要删除的栏目id,一个是$delfile是否删除栏目,其实,织梦这个“删除”功能,无论你选择“是”,还是“否”都要把栏目删除的,而且,织梦还禁止了把栏目里面的html删除的功能。

  4、更新缓存UpDateCatCache(),如果删除栏目,不更新一下缓存,则缓存里面仍然有这个栏目,虽然,在后台看不到栏目了,但是,在缓存文件里面确可以看到,这样如果其它地方引用缓存文件时,就会把原本已经删除的栏目,确仍然使用,这样就会出错。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|织梦二次开发

GMT+8, 2019-9-17 20:49 , Processed in 0.221240 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表