DeDeCMS二次开发教程之静态页面生成流程
来源:互联网 发布:注册域名需要注意什么 编辑:程序博客网 时间:2024/04/29 21:57
静态页面的生成
index.php文件
在index.php中一旦get传递一个upcache变量或者是文件index.html不存在时候,就开发生成静态文件。
然后执行如下代码:
require_once (dirname(__FILE__) . "/include/common.inc.php"); require_once DEDEINC."/arc.partview.class.php"; $GLOBALS['_arclistEnv'] = 'index'; $row = $dsql->GetOne("Select * From `#@__homepageset`"); $row['templet'] = MfTemplet($row['templet']); $pv = new PartView(); $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']); $row['showmod'] = isset($row['showmod'])? $row['showmod'] : 0; if ($row['showmod'] == 1) { $pv->SaveToHtml(dirname(__FILE__).'/index.html'); include(dirname(__FILE__).'/index.html'); exit(); } else { $pv->Display(); exit(); }
引入common.inc.php文件
1.定义错误报告级别
2.定义系统常量
如根目录以及include、data等目录名
3.判断是否禁用了自动注册全局变量
4.检查和注册外部提交的变量
主要是过滤一些变量,如cfg_或者是globals开头的变量。
5.判断是否开启了mb_string扩展库。
如是否可以使用mb_substr、iconv_substr分别代替使用substr、iconv。
6.如果没有开启magic_quotes_gpc自动过滤post、get、cookie中的数据,则调用函数过滤
7.系统相关变量检测
8.Session保存路径设置
9.引入系统配置参数(data/config.cache.inc.php)
10.如果有上传文件,对上传文件进行相应的处理
11.引入数据库配置文件
12.载入系统验证安全配置
require_once(DEDEDATA."/config.cache.inc.php");
13.Session跨域设置
14.时区设置
date_default_timezone_set
15.定义一下文件目录变量
16.文档的默认命名规则
17.定义特殊全局变量
18.对全局分页传递参数进行过滤
19.设定缓存配置信息
20.自动加载类库处理
phpcms自动加载类,仍然使用的是__autoload函数
21.引入数据库类
if ($GLOBALS['cfg_mysql_type'] == 'mysqli' && function_exists("mysqli_init")){ require_once(DEDEINC.'/dedesqli.class.php');} else { require_once(DEDEINC.'/dedesql.class.php');}
22.引入全局常用函数
require_once(DEDEINC.'/common.func.php');
在查看common.func.php代码可以发现,在该文件中又引入了扩展函数文件include/extend.func.php。
23.引入模块MVC框架需要的控制器和模型基类
require_once(DEDEINC.'/control.class.php');require_once(DEDEINC.'/model.class.php');
24.引入data/helper.inc.php,调用helper函数,导入include/helpers文件夹下面的一些工具类
引入/include/arc.partview.class.php文件
在arc.partview.class.php文件中进行如下操作
引入/include/channelunit.class.php
引入/include/dedetag.class.php
其中定义了标签类(DedeTag)、标签解析类(DedeTagParse)、属性类(DedeAttribute)、属性解析类(DedeAttributeParse)
引入/include/channelunit.func.php
定义一些数组,做映射
定义频道模型单元类(ChannelUnit)
引入/include/typelink.class.php
在typelink.class.php文件中进行了如下操作:
引入/include/channelunit.func.php
定义栏目连接类(TypeLink)
引入/include/ftp.class.php
在该文件中定了定义FTP 操作类(FTP)
定义了视图类(PartView)
定义全局变量_arclistEnv
$GLOBALS['_arclistEnv'] = 'index';
获取#@__homepageset表中第一条数据,并进行相应的过滤
$row = $dsql->GetOne("Select * From `#@__homepageset`"); $row['templet'] = MfTemplet($row['templet']);
实例化视图类PartView
在构造函数里面,初始化了一些了变量。
接下来流程
简单说就是设置模板路径,加载生成html文件。
设置模板
调用了PartView对象的SetTemplet方法。在该方法中,调用了DedeTagParse对象的LoadTemplet或者LoadSource方法加载模板。然后在调用PartView对象的ParseTemplet方法进行解析。
—–待续——-
1 0
- DeDeCMS二次开发教程之静态页面生成流程
- DeDeCMS二次开发教程之程序安装
- dedecms二次开发教程
- DedeCMS优化教程-提高后台文章静态生成速度
- freemarker之生成静态页面
- dedecms二次开发教程Dedesql数据库类详解
- dedecms二次开发:自定义模型使用教程
- dedecms二次开发:自定义模型使用教程
- dedecms二次开发:自定义模型使用教程
- 伪静态页面生成教程mod_rewrite
- 伪静态页面生成教程mod_rewrite
- 伪静态页面生成教程mod_rewrite
- 伪静态页面生成教程mod_rewrite
- 伪静态页面生成教程mod_rewrite
- 比较详细PHP生成静态页面教程
- PHP生成静态页面详细教程
- ecms二次开发之修改页面的生成参数
- 二次开发dedeCMS
- k-近临算法及代码实现
- 常用的机器学习&数据挖掘知识点[转]
- 线程池
- cocos2dx js 关于canvas绘图模糊问题及解决办法
- Error 'LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt' after
- DeDeCMS二次开发教程之静态页面生成流程
- NYOJ The Triangle
- JAVA正则表达式:Pattern类与Matcher类详解
- NYOJ 115 城市平乱(图论Dijkstra)
- Triangle
- HTML与 Css 基础知识
- 资深架构师不愿意说的7个经验之谈
- JAVA正则表达式 Pattern和Matcher
- Android开发中一些琐碎的小功能的实现