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’, str_replace(“\\”, ‘/’, substr(DEDEINC,0,-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,就可以加载模板文件,并显示了。
本站除原创内容,其余内容均收集自互联网,仅限用于学习和研究目的,本站不对其内容的合法性、可用性承担任何责任。本站禁止以任何形式发布或转载任何违法相关信息,若您发现请立即向站长举报;用户投稿一切资源内容不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
如有版权内容,其版权均归原作者所有,本站虽力求保存原有版权信息,但因众多资源经多次转载,已无法确定其真实来源,故敬请原作者谅解!为尊重作者劳动成果,请购买正版支持作者,谢谢!若您对「HULIKU.COM」所载资源作品版权归属存有异议,请发送邮箱:ihuliku@qq.com 进行处理。
本站资源文件大多存储至云盘,如您发现图片或链接失效,请联系站长或作者,我们将及时进行更新。资源都是经过站长或作者收集测试优化后进行发布分享。如若转载请在贵站文内以超链形式注明狐狸库文章出处,谢谢合作!













![WordPress子比主题美化教程合集[2023/04/17]-狐狸库](https://huliku.com/pic/2023032607024935.png)
![狐狸库自定义子比主题底部footer页脚美化(自适应)[06.26]更新-狐狸库](https://huliku.com/pic/2023062610013835.png)




















请登录后查看评论内容