加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > CMS系统 > Dedecms > 正文

DedeCms文件加载顺序原理介绍

发布时间:2020-12-14 04:23:56 所属栏目:Dedecms 来源:网络整理
导读:DedeCms 织梦cms可以说是国内最出名的cms系统了,对于我们研究cms,二次开发cms都是一个很好地学习。 下面分享下dedecms文件是如何加载模板是如何替换的。 比如织梦,ecshop这类模板引擎系统,研究它们的原理,就是从安装根目录的index.php看起来,看看都引入

DedeCms 织梦cms可以说是国内最出名的cms系统了,对于我们研究cms,二次开发cms都是一个很好地学习。

下面分享下dedecms文件是如何加载模板是如何替换的。

比如织梦,ecshop这类模板引擎系统,研究它们的原理,就是从安装根目录的index.php看起来,看看都引入了那些文件,这些文件又起到了什么作用。

织梦的index首先判断了/data/common.inc.php这个文件存不存在,存在就是已经安装过了,否则就是没安装过,跳到install/index.php。

接下来引入了全局加载的常用文件

require_once (dirname(__FILE__) . "/include/common.inc.php");

进入这个文件我们会看到

error_reporting(E_ALL || ~E_NOTICE);

define('DEDEINC',str_replace("",'/',dirname(__FILE__) ) );

define('DEDEROOT',substr(DEDEINC,-8) ) );

define('DEDEDATA',DEDEROOT.'/data');

define('DEDEMEMBER',DEDEROOT.'/member');

define('DEDETEMPLATE',DEDEROOT.'/templets');

它定义了很多路径变量,这样在以后引入文件的时候,会变得非常方便和明了。

接下来定义了一个function _RunMagicQuotes(&$svar)函数,这个函数对post,get,global等变量进行了过滤处理,这样使用更安全。

接下来引入系统常用变量

require_once(DEDEDATA."/config.cache.inc.php");

上传变量

require_once(DEDEINC.'/uploadsafe.inc.php');

数据库配置

require_once(DEDEDATA.'/common.inc.php');

系统安全配置

require_once(DEDEDATA.'/safe/inc_safe_config.php');

剩下的是一些常用目录的设置,比如:

模板的存放目录,插件目录,会员目录,专题列表,附件目录等。

接下来引入数据库的操作类:

require_once(DEDEINC.'/dedesql.class.php');

剩下的是全局函数和模型控制的引入:

require_once(DEDEINC.'/common.func.php');

// 模块MVC框架需要的控制器和模型基类

require_once(DEDEINC.'/control.class.php');

require_once(DEDEINC.'/model.class.php');

这些就是include/common.inc.php包含的内容,接下来,index.php 引入了

require_once DEDEINC."/arc.partview.class.php";

这个是模板解析类,有了它,通过调用它的方法Display,就可以加载模板文件,并显示了。

上一篇:Dedecms友情链接/uploads/fli<x>nk/不显示正确的图片路径错误

下一篇:/include/uploadsafe.inc.php dedecms注入漏洞修复方法

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读