dedecms代码研究一

dedecms相信大家一定都知道这个cms系统,功能比较强大,有比较完善的内容发布,还有内容静态化系统,还有就是它有自己独特的标签系统和模板系统。而模板系统也是其他cms系统比较难模仿的的东西,这个东西还是需要一点开发功力和技巧的。

本系列文章就研究一下dedecms的这套系统,挖掘一下看看里面有什么好东西。

建议大家先了解一下dedecms的功能。自己先动手用一下,对系统功能有个大概了解。

本文先带领大家了解一下dedecms的代码和功能架构。

其实,dedecms在架构上没什么应用架构模式可言,就是最简单的PHP应用而已。访问不同的PHP文件,管理不同的系统功能。看目录大家都能猜出来各个目录干什么用的。
include目录放系统的一些公用函数和类
plus目录放插件
templates目录放模板
dede目录是管理后台目录(可任意改名)
member目录是会员信息
install 目录  安装程序目录,安装完后可删除[安装时必须有可写入权限]
images 为 系统默认模板图片存放目录
uploads为 默认上传目录[必须可写入]
a        默认HTML文件存放目录[必须可写入]
templets    系统默认内核模板目录
data        系统缓存或其它可写入数据存放目录[必须可写入]
special     专题目录[生成一次专题后可以删除special/index.php,必须可写入]

此外目录 special 和 data 是什么功能的呢?

我们打开include目录,看看里面都有什么好东西。

calendar   一个选时间的js
captcha    一个验证码,还是开源组件
code      没啥意思,翻页的文字
data     里面是一些系统用到的资源,比如声音,分词库,字体,图片等
dialog    里面估计是一些AJAX弹出窗口的内容部分。以后碰到了再说
inc      里面一些单独的功能类函数,以后研究一下为什么要单独放
payment   支付接口
taglib    好东西,是dedecms的标签存放的地方,打开看看,里面一堆文件,貌似就是dedecms的模板标签啦
tpllib    模板库?暂时搞不明白,希望随着研究深入,能弄明白

其他include目录下的文件估计都是一些最基本的功能文件啦,比如常用函数,模板系统之类的东西了。用到再说吧

打开dede目录(就是dedecms的管理目录)看看,哟嗬,里面的东西还挺多,看名字就知道了,都是各种功能管理文件,一个功能一个文件。最原始的网站开发模式做出来的。我们姑且称之为高效吧。毕竟PHPwind和discuz之类也是用类似的方法开发的。

整个程序大体就这些东西啦。功能就不讲了,建议不熟悉dedecms的朋友自己看一下dedecms的后台管理功能,这样能有助于我们更好理解和分析它。

另外提一点,我们的这次代码分析,主要分析的是其页面生成、显示、模板处理、标签处理部分,这套系统也是dedecms比较引以为傲的东西,之后呢,还会分析一些笔者觉得比较酷的功能代码。

最后,希望这次代码分析旅程能让大家有所收获。 华子个人博客 www.kanronghua.com

时间: 2024-08-10 21:14:50

dedecms代码研究一的相关文章

dedecms代码研究二

dedecms代码研究(2)从index开始 现在继续,今天讲的主要是dedecms的入口代码. 先打开index.PHP看看里面是什么吧.打开根目录下的index.php嗯 映入眼帘的是一个if语句.检查/data/common.inc.php是否存在.如果不存在就跳转到安装界面. if(!file_exists(dirname(__FILE__).'/data/common.inc.php')) { header('Location:install/index.php'); exit();

dedecms代码研究五

上一次留几个疑问: 1)DedeTagParse类LoadTemplet方法. 2)MakeOneTag到底在搞什么. 从DedeTagParse开始前面,我们一直在dedecms的外围,被各种全局变量和各种调用所迷惑,我们抓住了一个关键的线索DedeTagParse类,研究明白它,就可以弄清楚很多东西了. 看看这个NB的DedeTagParse类吧. 嗯,先看构造函数,没什么特别的,就是设置了一堆初始化参数. 接下来就找LoadTemplet方法吧. 找到后,我们发现LoadTemplet方法

dedecms代码研究七

简单回顾一下,前面我们首页动态文件index.PHP调用arc.partview.class.php来初始化首页模板 arc.partview.class.php通过SetTemplet调用DedeTagParse,在设置首页模板的时候,解析了模板,并生成模板的缓存或者说序列化文件.虽然模板被解析了,但是这种解析的只是把所有标签在模板中的位置以及他们的参数记录下来,并没有填充数据,接下来估计就要干这些事情了. 我们回到partview的SetTemplet方法,从$this->dtp->Loa

(转)dedecms代码详解 很全面

dedecms代码研究(1)开篇dedecms 相信大家一定都知道这个cms 系统,功能比较强大,有比较完善的内容发布,还有内容静态化系统,还有就是它有自己独特的标签系统和模板系统.而模板系统也是其他cms系统比较难模仿的的东西,这个东西还是需要一点开发功力和技巧的.本系列文章就研究一下dedecms的这套系统,挖掘一下看看里面有什么好东西.建议大家先了解一下dedecms的功能.自己先动手用一下,对系统功能有个大概了解.本文先带领大家了解一下dedecms的代码和功能架构.其实,dedecms

神经网络caffe框架源码解析--softmax_layer.cpp类代码研究

// Copyright 2013 Yangqing Jia // #include <algorithm> #include <vector> #include "caffe/layer.hpp" #include "caffe/vision_layers.hpp" #include "caffe/util/math_functions.hpp" using std::max; namespace caffe { /**

神经网络caffe框架源码解析--data_layer.cpp类代码研究

dataLayer作为整个网络的输入层, 数据从leveldb中取.leveldb的数据是通过图片转换过来的. 网络建立的时候, datalayer主要是负责设置一些参数,比如batchsize,channels,height,width等. 这次会通过读leveldb一个数据块来获取这些信息. 然后启动一个线程来预先从leveldb拉取一批数据,这些数据是图像数据和图像标签. 正向传播的时候, datalayer就把预先拉取好数据拷贝到指定的cpu或者gpu的内存. 然后启动新线程再预先拉取数

Spring代码研究-前言

好久没有写过博客了 看看上篇,也是唯一的博客是3年前刚工作写的,似乎过去了很久 一次面试,面试官突然问我,为什么要用Spring,我一时语塞,不知道从何说起 呜呜弄弄,Spring提供的DI/IOC,AOP,MVC以及对与Hibernate,JDBC的支持,很方便使用,可以使我们非常方便的编程,把更多的经历放在业务逻辑的设计上 并不自信,因为我觉得我说的不好 当然,这也是这篇博客,以及后续Spring代码分析研究博客产生的原因 工作三年,工作做过ExtJS,Flex,Twaver Flex,An

CWMP开源代码研究5——CWMP程序设计思想

声明:本文涉及的开源程序代码学习和研究,严禁用于商业目的. 如有任何问题,欢迎和我交流.(企鹅号:408797506) 本文介绍自己用过的ACS,其中包括开源版(提供下载包)和商业版(仅提供安装包下载,没有源码) 参考: 1) http://www.docin.com/p-1306443672.html 2) http://www.easycwmp.org/ 一. 背景   程序设计的思想来自于easycwmp官网,看过或者用过easycwmp的工程师应该都知道,该开源代码还有商业版,而且价格不

CWMP开源代码研究7——cwmp移植

原创作品,转载请注明出处,严禁非法转载.如有错误,请留言! email:[email protected] 声明:本系列涉及的开源程序代码学习和研究,严禁用于商业目的. 如有任何问题,欢迎和我交流.(企鹅号:408797506) 本篇用到的文件包下载路径:http://download.csdn.net/detail/eryunyong/9735149 一. 环境1.GNU/Linux Centos6.5操作系统2.gcc二. 依赖包的安装1. expat-2.1.01)下载安装包expat-2