欢迎来到天天文库
浏览记录
ID:44656318
大小:263.00 KB
页数:19页
时间:2019-10-24
《织梦代码分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、dedeems相信大家一定都知道这个ems系统,功能比较强大,冇比较完善的内容发布,还有内容静态化系统,还有就是它有自己独特的标签系统和模板系统。而模板系统也是其他ems系统比较难模仿的的东西,这个东西还是需要一点开发功力和技巧的。本系列文章就研究一下dedeems的这套系统,挖掘一下看看里面有什么好东西。建议大家先了解一下dedeems的功能。口己先动手用一下,对系统功能有个大概了解。本文先带领大家了解一下dedeems的代码和功能架构。其实,dedeems在架构上没什么应川架构模式可言,就是最简单的PHP应川而己。访问不同的PHP文件,管理不同的系统功能。
2、看忖录大家都能猜出来各个目录干什么用的。includeII录放系统的一些公用函数和类,plusR录放插件,templatesH录放模板,dede冃录是管理后台冃录。我们打开include目录,看看里面都有什么好东西。calendar一个选吋间的jscaptcha—个验证码,还是开源组件code没啥意思,翻页的文字data里面是一些系统用到的资源,比如声音,分词库,字体,图片等dialog里而估计是一些AJAX弹出窗口的內容部分。以后碰到了再说inc里而一些单独的功能类函数,以后研究一下为什么要单独放payment支付接口taglib好东西,是dedeems的标
3、签存放的地方,打开看看,里面一•堆文件,貌似就是dedeems的模板标签啦tpllib模板库?暂时搞不明白,希望随着研究深入,能弄明白其他include目录下的文件估计都是一些最基本的功能文件啦,比如常用函数,模板系统Z类的东西了。用到再说吧打开dede口录(就是dedeems的管理目录)看看,哟响,里面的东西还挺多,看名字就知道了,都是各种功能管理文件,一个功能一个文件。最原始的网站开发模式做出来的。我们姑一冃•称Z为高效吧。毕竟PHPwind和discuz之类也是用类似的方法开发的。整个程序大休就这些东西啦。功能就不讲了,建议不熟悉dedeems的朋友自己
4、看一下dedeems的后台管理功能,这样能冇助于我们更好理解和分析它。另外提一点,我们的这次代码分析,主要分析的是其页面生成、显示、模板处理、标签处理部分,这套系统也是dedeems比较引以为傲的东西,Z后呢,述会分析一些笔者觉得比较酷的功能代码。最后,希望这次代码分析旅程能让人家有所收获。sourcejoy之dedeems代码研究(2)从index开始现在继续,今天讲的主要是dedeems的入口代码。2先打开index.php看看里面是什么吧。打开根目录下的index.php嗯,映入眼帘的是一个if语句。检查/data/common.inc.php是否存在。
5、如果不存在就跳转到安装界血。我们来到/data/看看这个目录和common.inc.phpo打开/data/,里曲很多目录和文件,有上传的临时目录,模板缓存,压缩的临时目录,各种数据库里保存的系统配置信息的缓存文件以及其他的一些东西,就一个字乱〜好吧,我们打开common.inc.phpo哦,原來就是保存了数据库连接的相关变量而已。说白了,就是dedeems的数据库连接配置文件,估计是安装完系统生成的。所以/index.php会检查它是否存在。我们回到/index.php中继续往下看,第二个if语句,判断GET请求"upcache"是否存在,存在就更新首页缓存
6、,不存在就直接301跳转到index.html,也就是dedeems的静态酋页(记住,dedeems的前台页面都是系统生成的静态页而)。想想接下来我们要研究什么?对,就是GET请求"upcache〃存在的时候,更新首页缓存这小段代码啦。代码如下:require_once(dirname(_FILE_)."/include/common.inc.php");require_onceDEDEINC."/arc.partview.class.php";$GLOBALS['_arclistEnv']='index';$row=$dsql->GetOne("Select
7、*From、#@homepageset$row['templet']=MfTemplet($row['templet,]);$pv=newPartView();$pv->SetTemplet($cfg_basedir.$cfg_templets_dir..$row['templet']);$pv->SaveToHtml(dirname(_FILE_).7index.html');include(dirname(_FILE_).7index.html');exit();先是加载/include/common.inc.php,估计是一些常川函数和加载其他系统两数和
8、类的文件。接下来又加载了DEDEINC
此文档下载收益归作者所有