今天和站友们一起了解dedecms,讲三部分内容:
1、了解dedecms
2、安装及使用dedecms
3、对dedecms进行二次开发
明:除了介绍部分,其余都是自己原创
现在开始学习
第一节 了解dedecms
1、什么是dedecms
是一个网站应用系统构建平台,也是一个强大的网站内容管理系统。既可以用来构建复杂体系的企业信息门户或电子商务网站平台,也可以用来管理简单内容发布网站,不管是商务资源门户还是娱乐信息门户,它都是您管理网站的好帮手,能帮助您最大限度的去自由发挥您的网站设计天才,更轻松的驾驭管理您的网站而不需要非常专业的网站技术,使您把网站设计变成更加乐趣的工作,让您满足想到就会做到的梦想。借助灵活而强大的处理技术和先进的网站管理思想所构建出的软件,使您天才的设计思想在网站创意及管理等多方面尽情的去自由发挥而不受束缚。
这是dede官网上的说明,让大家先有个了解,dedecms目前版本为4.0,2007版一直在跳票dede的作者为:林学(IT柏拉图)关于林学,可以通过这篇文章了解一下《专访“IT柏拉图”:让全世界都看到中国开源CMS!》,地址:http://www.dedecms.com/html/CMShttps://files.jxasp.com/image/20070531/38905.html
dede应该是比较早走开源路线的cms,因此有相当多的用户在使用,介绍一下dedecms的系统需求
2、系统需求
DedeCms基于php语言开发,需要以下环境支持:
服务器平台linux、 FreeBSD、Solaris、 Unix、 Win2000、Win2003
Web服务器运行环境: Apache1.3.XX(2.0.XX) / IIS5(6) + php4.3.X/4.4X/5.x + MySQL3.2X/4.0x+
补充说明:
1)要正常使用DedeCms的各项功能,php还需要支持GD扩展(建议GD版本不低于2.0) 2)后台管理端目前只支持Internet Explorer,并且要求版本不低于6.0,否则可能会导致未知错误(编辑器不显示等等,此问题在4.0版中已经修正,可选支持开源的FCK编辑器)。其中后一个问题在4.0中已经解决,也就是使用开源的FCK编辑器,可支持不同的浏览器。
我个人使用dede的环境介绍一下,大家可以参考
本机调试环境
windows2003/Apache2.2.4/Mysql5.0/php5.2/dedecms4.0RC
也就是我现在的电脑环境
服务器环境
FreeBSD6.2/ apache2.2.4/mysql-5.0.41/ php-5.2.3
基本上都是比较新的版本
3、系统主要特点
1)频道模型管理 DedeCms自带普通文章、软件、图片集、Flash、专题五种固定模型,用户还可以根据自己的需要扩展自定义模型,用户可以在后台决定是否启用某个频道模型。
据说2007能支持更多的模型,期待中,目前这些模型应该是大部分cms都支持的常见功能
2)栏目管理
DedeCms栏目与频道模型是关连的,支持无限级分类,允许用户手动选择单个栏目的模板,允许用户自行设定栏目列表和文档的命名规则,允许使用一个单独页面作为栏目,支持自动用拼音作为文档的名称。对于栏目管理,我所关注的是每个栏目可以支持单独的模板。
3)内容发布
支持自定义模型,内容发布也分是固定的发布表单还是可变的发布表单,但在DedeCms中,所有内容的摘要信息都会视作统一的模式,可以统一导出为RSS链接,因此内容发布的摘要信息是固定的,而具体内容则是可变的。同样对于内容发布,也支持每一篇文章使用完全不同的模板。
4)增强的文章系统
DedeCms内置的文章系统模型更注重全文索引、搜索引擎优化等方面,支持将远程媒体本地化,支持自动获取关键字,并生成索引,支持从Word里粘贴内容,此外对文章关键字、置顶、高亮这些细节的地方也作了处理。dedecms作者自己开发了分词算法,让dede在系统本身就具备某些seo的天性。
5)专题
DedeCms的专题模块支持使用多个分类节点,文章列表支持用多列或图文的形式展现,有更高的灵活性。通过文章和专题结合,可以实现很多的个性栏目,例如小说类型。
6)采集系统
DedeCms提供在线的采集系统,这个版本的采集系统是一个通用的采集系统,有通用的扩展接口,理论上能采集任何模型的内容,可采集文章及图片类型。dede的自带采集器,据说3.1版本的很好用,4的效率有所下降,因为我没用,所以没有仔细研究。但是估计是关键词和相关网站造成的效率降低。dede的采集系统和常见的采
集系统大同小异,但是对html代码过滤设计不人性化。需要正则表达式过滤。
7)外部系统整合
DedeCms提供了整合外部会员系统的接口,对于有特殊需求的用户,可以随心所欲的让DedeCms内置的会员系统与你网站的其它系统任意通行。这个也是常见功能。目前已经编写好的API接口文件的程序在下面列表中
PW 4.3.2 / 5.3
DZ 5.0/5.5
DVBBS-ASP 7.10
DVBBS-PHP 1.03
8)人性化
DedeCms提供了很多的实用工具让用户更容易使用这套系统,例如文档批量生成、数据库内容替换、正则表达式测试工具、重复文档检测、批量自动摘要/分页、网站木马扫描检测、随机模板防采集等。这也是让很多用户高兴的地方,这些小工具,实用简单。
9)自定义标记
DedeCms支持自定义标记,并且允许在自定义标记中使用模板代码,允许对不同的类别使用不同的内容,使系统的灵活性达到前所未有的高度。
10)常用附件
DedeCms 提供了投票、友情链接、站点公告、留言本、论坛扩展等附助模板,使你更轻松的创建你的网站。
11)一键备份功能
DedeCms使用一键对数据库所有内容进行分卷备份,除了备份数据之外还备份数据结构等信息,确保你的网站可以轻松的实现转移或灾难恢复。
12)插件管理机制
DedeCms带有插件管理的功能,你可在后台禁用不需要的插件或安装新的插件。
以上就是dedecms的一些特性,其实大部分和类似的cms没什么区别。但是为什么我会选择研究它呢?接下来说说我的感受
4、我用dedecms感受
先说优点:
1)开源
国内号称开源的cms不少,但是真正有诚意的并不多;开源是我最看重的,我不能忍受这个系统中有我不能修改的部分。好像phpcms说是开源,其实某些部分依旧是加密的。再例如动易,必须注册它的组件。在我看来,不开源的,始终是别人给的工具,而不是自己的工具。
2)灵活
DedeCms的标签模板技术是其灵活的主要原因,原则上可以利用其标签搭建完全不同的各式站点;我研究过phpwind的代码,发现他的模板其实就是php文件。
3)模板直观,制作简单
由于是嵌入标签,标签的解析由程序完成,不包含php标签,因此dede的模板更加直观,由于dede标签技术相对较容易掌握,模板的制作显得比较简单;因此dede的模板也相对较多。
4)效率还不错
感觉整个系统功能比较单一,不臃肿。由于目前dede的功能相对简单,因此在效率上,还是不错的。新的版本还没有出现,不好评估。
这是我觉得一些优点,尤其是开源,所以我在一直使用。
继续给站友们说缺点
1)程序更新速度慢
指的是版本更新,因为只有一个人开发,所以不断跳票。
2)数据量较大情况下,效率受到影响(数据结构设计的硬伤),这个问题,据说在2007会得到解决。问题主要出在dede的数据库设计上,为了提高效率,dede基本上把大部分的流量都压在一个表上。因此造成这个表过大。
3)功能相对简单
等下一个版本也许会有所增加
4)系统默认模板太粗糙
估计作者没有什么美术功底,dede的系统模板不美。
5)会员部分太粗糙
我一般建议不用这部分功能,嘿嘿,希望it柏拉图不要在这里哦。
6)技术支持和服务较差
很多收费用户投诉得不到及时的技术支持,也难怪,一个人嘛。
7)没有官方的UTF-8版本及BIG5版本
这个问题我自己解决了,
第二节 安装及使用dedecms
接下来的内容,不详细讲了,就是普通的软件使用问题,但是有一份文档很珍贵,应该在网上找不到的
1、如何安装dedecms
需要注意几点就对了:
1)初学者建议安装到网站根目录;
2)安装前检查 include和dede/templets目录是否有可写和可修改权限;
3)安装后删除或者重命名setup目录;
2、认识dedecms目录
安装后dedecms的目录如下表:
根目录
/dede 管理后台目录
/freelist 自由文档列表生成目录
/html 默认文章生成目录
/include 程序核心文件目录
/member 会员管理目录
/plus 插件及辅助功能目录
/setup 安装目录
/special 专题生成目录
/templets 默认模板存放目录
/upimg 上传下载文件保存目录
base.css 基本样式表
index.php 网站默认首页
robots.txt 搜索控制文件
3、dedecms模板制作
要学会dede模板制作不难,了解清楚模板位置最重要。
1)模板位置及目录结构
/templets模板目录
/dedecmsv31 3模板目录
/default 默认模板目录
article_article.htm 普通文章页面模板
article_default.htm 一般文档页面模板
article_flash.htm flash页面模板
article_image.htm 图集页面模板
article_soft.htm 软件页面模板
article_spec.htm 专题页面模板
index.htm 网站首页模板
index_article.htm 文章频道封面模板
index_article_webart1.htm 备用模板
index_article_webart2.htm 备用模板
index_article_webart.htm 备用模板
index_default.htm 一般文档封面模板
index_flash.htm flash频道封面模板
index_image.htm 图集频道封面模板
index_soft.htm 软件频道封面模板
list_article.htm 文章列表模板
list_default.htm 一般文档列表目录模板
list_flash.htm flash文档列表模板
list_free.htm 自由列表模板
list_image.htm 图集列表模板
list_soft.htm 软件列表模板
list_spec.htm 专题列表模板
/img 模板图片目录(含样式表)
/plus 辅助插件模板目录
download_links_templet.htm 下载链接模板
feedback_confirm.htm 评论确认模板
feedback_templet.htm 用户评论模板
feedback_templet_js.htm 同上
flink-add.htm 友情链接添加模板
flink-list.htm 友情链接列表模板
guestbook.htm 留言本模板
heightsearch.htm 高级搜索模板
js.htm JS脚本模板
recommend.htm 推荐好友模板
rss.htm RSS的XML模板
rssmap.htm RSS订阅文件
showphoto.htm 图片显示模板
sitemap.htm 网站地图模板
view_msg.htm 会员提示信息模板
vote.htm 投票结果显示模板
/system 系统模板目录
channel_list.htm 栏目列表系统模板
list_fulllist.htm 文档列表系统模板
mynews.htm 站内新闻系统模板
part_arclist.htm 文章列表系统模板
part_autochannel.htm 分类栏目系统模板
part_channelartlist.htm 包含文章列表的栏目系统模板
part_imginfolist.htm 使用imginfolist标签调用的模板
part_imglist.htm 使用imglist标签调用的模板
part_type_list.htm 单个栏目的系统模板
spec_arclist.htm 专题列表文章系统模板
spec_list.htm 专题用模板
tag_arclist.htm
tag_fieldlist.htm fieldlist用系统模板
/system/channel 频道特殊底层模板目录
channel_downlinkpage.htm 下载地址列表链接模板
channel_downlinks.htm 下载地址列表模板
channel_spec_note.htm 专题节点列表模板
制作好的模板根据上面的列表覆盖即可
2)模板制作及发布方法
建议方法:①制作网站模板②参考官方模板在对应地方填入对应dede标签③替换templets/default目录下
的对应文件④后台系统设置中,自定义“模板默认风格(cfg_df_style)”变量,讲模板放入自建的目录中。
有些人喜欢拿到模板就打开DW修改,尤其是可视化修改,其实不建议这么做。容易破环dede标签的完整,
造成错误。关于dede标签,可以参考:3)DedeCms的标签介绍
参考官方文档,写得很详细了,也比较容易上手。还有一些参考资料供大家参考
4、参考工具及文档
1)dede标签编写插件:DedeCms For DW 模板制作插件
<http://www.dedecms.com/html/chanpinxiazaihttps://files.jxasp.com/image/20070112/64.html>
2)dedecms模板标签参考.chm
第三节 对dedecms进行二次开发
说说经验,dedecms的代码注释还是比较清楚的,相对比较容易看懂,有php基础的可以看看,没有的。可以到我的blog上看看有什么是你需要的。部分功能扩展,程序的核心在include目录下,该目录的说明如下:
1、程序核心程序目录及简介
/include目录 程序核心目录
config_base.php 环境定义文件。用于检测系统环境,定义工作目录,保存数据库链接信息,引入常用函数等,建议不要修改。
config_hand.php 系统配置文件。定义系统常用的配置信息定义,可从后台管理直接生成该文件。
config_passport.php 通行证文件
config_rglobals.php 检测系统外部变量
config_rglobals_magic.php 同上
inc_archives_view.php 用于浏览文档或对文档生成HTML
inc_arclist_view.php 用于浏览频道列表或对内容列表生成HTML
inc_arcmember_view.php 用于浏览会员发布的文档
inc_arcpart_view.php 用于解析和创建全局性质的模板,如频道封面,主页,单个页面等
inc_arcsearch_view.php 用于文档搜索
inc_arcspec_view.php 用于浏览所有专题列表或对专题列表生成HTML
inc_channel_unit.php 用户解析特定频道的附加数据结构信息
inc_channel_unit_functions.php 系统共用函数集合
inc_downclass.php 防采集随机字符串函数
inc_freelist_view.php 用于对特定内容列表生成HTML
inc_functions.php 可供用户使用的函数集合
inc_imgbt.php GetTypeidSelMember
inc_memberlogin.php 用于用户登录及获得会员状态
inc_photograph.php 用于处理系统中的图片,例如水印,缩略图等
inc_photowatermark_config.php 图片处理参数定义
inc_rss_view.php 用于浏览频道RSS或对RSS生成静态文件
inc_separate_functions.php SpGetArcList函数,用于获得文档列表
inc_sitemap.php 用于生成网站地图
inc_type_tree.php 用于选择栏目的目录树
inc_type_tree_member.php 同上,会员使用
inc_typelink.php 用于显示文章的位置和栏目位置等
inc_typeunit_admin.php 用于频道管理时的一些复杂操作,主要用于后台
inc_typeunit_menu.php 同上
inc_userlogin.php 用于管理员登录
inc_vote.php 用于管理投票
jump.php 用于超链接跳转
pub_charset.php 共用字符处理函数,GB/UTF-8/Unicode/BIG5等互换
pub_collection.php 用于采集
pub_collection_functions.php 采集用函数
pub_datalist.php 后台管理用数据列表
pub_datalist_dm.php 同上,不使用模板
pub_db_mysql.php 用于操作数据库
pub_dedehtml2.php 用于采集中的HTML解析
pub_dedehtml.php HTML解析器
pub_dedetag.php 用于dede模板标签解析
pub_httpdown.php 用于下载http中的资源
pub_oxwindow.php 后台程序扩展
pub_splitword_www.php 织梦分词算法
validateimg.php 验证码
vdimgck.php 验证码
/inc 共用函数目录
inc_fun_funAdmin.php 获取拼音码等函数
inc_fun_funString.php html代码处理等函数
inc_fun_SpGetArcList.php 获取文档列表SpGetArcList
对于菜鸟来说,对于菜鸟来说,config_base.php,这个文件,当你的程序出现问题,需要覆盖,当你的程序出现问题,需要覆盖。不要覆盖config_base.php和config_hand.php文件,里面都是dede一些核心配置文件,对于高手来说,也许修改几个php页面已经达不到目的了,就需要了解dede的数据库结构,下面是部分关键数据表的结构和说明,不完全,还没有整理完全,过几天发布完整版本
2、主要数据结构表
已经可以指导开发了
dede_addonarticle 附加文章表
aid int(11) 文章编号
typeid int(11) 分类栏目编号
body mediumtext 文章内容
dede_addonflash 附加Flash表
aid int(11) FLASH编号
typeid int(11) 分类栏目编号
filesize varchar(10) 文件大小
playtime varchar(10) 播放时长
flashtype varchar(10) 作品类型
flashrank smallint(6) 作品等级
width smallint(6) 影片宽度
height smallint(6) 影片高度
flashurl varchar(80) FLASH地址
dede_addonimages 附加图集表
aid int(11) 图集编号
typeid int(11) 分类栏目编号
pagestyle smallint(6) 表现方式(1单页显示 2分多页显示 3多行多列展示)
maxwidth smallint(6) 大图限制宽度
imgurls text 图片集内容(标签存放)
row smallint(6) 多列式参数(行)
col smallint(6) 多列式参数(列)
isrm smallint(6) 是否下载远程图片
ddmaxwidth smallint(6) 小图片宽度限制
dede_addonsoft 附加软件表
aid int(11) 软件编号
typeid int(11) 分类栏目编号
filetype varchar(10) 文件类型
language varchar(10) 界面语言
softtype varchar(10) 软件类型
accredit varchar(10) 授权方式
os varchar(30) 运行环境
softrank int(11) 软件等级
officialUrl varchar(30) 官方网址
officialDemo varchar(50) 程序演示地址
softsize varchar(10) 软件大小
softlinks text 软件下载链接列表
introduce text 软件介绍
dede_addonspec 附加专题表
aid int(11) 专题编号
typeid int(11) 分类栏目编号
note text 专题内容(仅存放标签代码)
dede_admin 管理员信息表
ID int(10) 自动编号
usertype int(10) 用户类型
userid varchar(30) 用户登录ID
pwd varchar(50) 用户密码
uname varchar(20) 用户笔名
tname varchar(30) 真实姓名
email varchar(30) 电子邮箱
typeid int(11) 负责频道(0表示全部)
logintime datetime 登录时间
loginip varchar(20) 登录IP
dede_admintype 系统用户组管理表
rank smallint(6) 组级别编号
typename varchar(30) 组名称
system smallint(6) 是否为系统默认组
purviews text 权限列表
dede_arcatt 文档自定义属性表
att smallint(6) 编号
attname varchar(30) 属性名称
dede_archives 文章表
ID int(11) 自动编号
typeid int(11) 所属主栏目编号
typeid2 int(11) 所属副栏目编号
sortrank int(11) 文章排序(置顶方法)
iscommend smallint(6) 是否推荐
ismake smallint(6) 是否生成静态
channel int(11) 文章所属模型
arcrank smallint(6) 阅读权限
click int(11) 点击次数
money smallint(6) 消费点数
title varchar(80) 标题
shorttitle varchar(36) 简略标题
color varchar(10) 标题颜色
writer varchar(30) 作者
source varchar(50) 来源
litpic varchar(100) 缩略图
pubdate int(11) 录入时间
senddate int(11) 发布时间
arcatt smallint(6) 自定属性(att)
adminID int(11) 发布管理员ID
memberID int(11) 发布会员ID
description varchar(250) 摘要
keywords varchar(60) 关键词
templet varchar(60) 文档模板
lastpost int(11) 最近评论时间
postnum int(11) 评论数目
redirecturl varchar(150) 跳转网址
mtype int(11) 用户自定义分类
userip varchar(20) 用户IP
locklikeid smallint(6) 是否锁定相关文章
likeid varchar(240) 相关文章ID
dede_arcrank 阅读权限表
ID int(10) 自动编号
rank smallint(10) 权限等级
membername varchar(20) 等级名称
adminrank smallint(10) 管理等级
money int(11) 消费点数
dede_arctype 栏目管理表
ID int(10) 栏目编号(自动编号)
reID int(10) 父栏目编号
topID int(10)
sortrank smallint(6) 排序编号
typename varchar(30) 栏目名称
typedir varchar(100) 栏目目录
isdefault smallint(6) 栏目列表选项(1链接到默认页 0链接到列表第一页 -1使用动态页)
defaultname varchar(20) 默认页的名称
issend smallint(6) 是否支持投稿
channeltype smallint(6) 频道类型
maxpage int(11) 保留
ispart smallint(6) 栏目属性
corank smallint(6) 浏览权限
tempindex varchar(60) 封面模板
templist varchar(60) 列表模板
temparticle varchar(60) 文章模板
tempone varchar(60) 单独页面模板
namerule varchar(50) 文章命名规则
namerule2 varchar(50) 列表命名规则
modname varchar(30) 模板名称
description varchar(200) 栏目介绍
keywords varchar(100) 关键词
moresite smallint(6) 多站点支持
siterefer smallint(6) 多站点站点根目录属性
sitepath varchar(60) 多站点站点根目录
siteurl varchar(60) 多站点绑定域名
ishidden smallint(6) 是否隐藏栏目
dede_area 地区表
eid int(11) 地区编号
name varchar(20) 地区名称
rid int(11) 编号属性
ok 关于dedecms我们就讲这么多。我对dede的了解不算深入,基本上是需要的我才了解一下,有不对的地方,请大家批评指正。好了,下课。