织梦dedeCMS二次开发文档手册.docx
- 文档编号:26662899
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:37
- 大小:48.55KB
织梦dedeCMS二次开发文档手册.docx
《织梦dedeCMS二次开发文档手册.docx》由会员分享,可在线阅读,更多相关《织梦dedeCMS二次开发文档手册.docx(37页珍藏版)》请在冰豆网上搜索。
织梦dedeCMS二次开发文档手册
DedeCMS二次开发必备基础:
∙非常熟悉HTML
∙熟悉DIV+CSS的布局
∙扎实的PHP基础,熟悉结构化编程,了解OOP,并能看懂和使用
∙熟悉MYSQL,掌握SQL语言
DedeCMS二次开发学习过程
∙理解CMS是什么
∙熟悉DedeCMS的功能(如:
栏目的分类,文档管理,模型的使用,系统的设置等常用的功能)
∙掌握DedeCMS的模板标签使用及原理
∙DedeCMS目录结构分析
熟悉每个文件夹里面主要装什么文件,这样在二次开发的时候知道在哪个文件夹下的什么文件修改
目录结构摘要:
./a生成文件存放路径
./data缓存文件及数据中心
/admin管理后台数据
/backupdata备份数据
/cache缓存文件
/enums级别联动数据,JS,枚举类型的缓存文件
/js常用的JS
/mark水印相关文件
/module模块安装文件
/rssRss相关
/sessionsSession存放路径
/textdata文本数据
/tplcache模板缓存
/uploadtmp上传文件缓存位置
/ziptmpzip包解压缓存位置
……
∙DedeCMS文件结构分析
熟悉每个文件的基本功能,方便做修改,知道每个文件的大概作用之后,可以方便的对文件进行修改
文件结构摘要:
common.inc.php数据库配置文件
config.cache.bak.php后台系统配置备份
config.cache.inc.php后台系统配置文件缓存
downmix.data.php采集混淆缓存文件
mysql_error_track.incMYSQL错误��志
safequestions.php安全问题
sitemap.html站点地图
sys_pay.cache.php支付网关配置
template.rand.php随机模板设置
……
∙DedeCMS数据库结构分析,至少要熟悉每个表的作用
熟悉每个表的作用,了解几个核心表的设计及字段的含义,方便拿到新的需求之后,能快速的判断是否加字段,还是新建表来处理。
同时也能理解DedeCMS的数据库设计思想,把有用的设计思路加到自己的系统中。
∙DedeCMS的流程控制,及一些核心文件的解析
熟悉一些登陆,注册,文档管理,权限控制,分类管理,模型设置等一些常用流程控制。
对几个核心文件进行解剖,了解其编程技巧及安全机制
∙DedeCMS插件的开发(****式插件和内嵌式插件)
熟悉两种插件的编写,插件的导入导出,插件搭配模型的使用
∙掌握里面的编程技巧及系统设计技巧
织梦dedeCMS二次开发文档手册,文件详解以及数据库结构字段说明
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.phpGetTypeidSelMember
inc_memberlogin.php用于用户登录及获得会员状态
inc_photograph.php用于处理系统中的图片,例如水印,缩略图等
inc_photowatermark_config.php图片处理参数定义
inc_rss_view.php用于浏览频道RSS或对RSS生成静态文件
inc_separate_functions.phpSpGetArcList函数,用于获得文档列表
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.phpHTML解析器
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.phphtml代码处理等函数
inc_fun_SpGetArcList.php获取文档列表SpGetArcList
对于菜鸟来说,对于菜鸟来说,config_base.php,这个文件,当你的程序出现问题,需要覆盖,当你的程序出现问题,需要覆盖。
不要覆盖config_base.php和config_hand.php文件,里面都是dede一些核心配置文件,对于高手来说,也许修改几个php页面已经达不到目的了,就需要了解dede的数据库结构,下面是部分关键数据表的结构和说明,不完全,还没有整理完全,过几天发布完整版本
主要数据结构表
已经可以指导开发了
dede_addonarticle 附加文章表
aidint(11)文章编号
typeidint(11)分类栏目编号
bodymediumtext文章内容
dede_addonflash附加Flash表
aidint(11)FLASH编号
typeidint(11)分类栏目编号
filesizevarchar(10)文件大小
playtimevarchar(10)播放时长
flashtypevarchar(10)作品类型
flashranksmallint(6)作品等级
widthsmallint(6)影片宽度
heightsmallint(6)影片高度
flashurlvarchar(80)FLASH地址
dede_addonimages附加图集表
aidint(11)图集编号
typeidint(11)分类栏目编号
pagestylesmallint(6)表现方式(1单页显示2分多页显示3多行多列展示)
maxwidthsmallint(6)大图限制宽度
imgurlstext图片集内容(标签存放)
rowsmallint(6)多列式参数(行)
colsmallint(6)多列式参数(列)
isrmsmallint(6)是否下载远程图片
ddmaxwidthsmallint(6)小图片宽度限制
dede_addonsoft附加软件表
aidint(11)软件编号
typeidint(11)分类栏目编号
filetypevarchar(10)文件类型
languagevarchar(10)界面语言
softtypevarchar(10)软件类型
accreditvarchar(10)授权方式
osvarchar(30)运行环境
softrankint(11)软件等级
officialUrlvarchar(30)官方网址
officialDemovarchar(50)程序演示地址
softsizevarchar(10)软件大小
softlinkstext软件下载链接列表
introducetext软件介绍
dede_addonspec附加专题表
aidint(11)专题编号
typeidint(11)分类栏目编号
notetext专题内容(仅存放标签代码)
dede_admin管理员信息表
IDint(10)自动编号
usertypeint(10)用户类型
useridvarchar(30)用户登录ID
pwdvarchar(50)用户密码
unamevarchar(20)用户笔名
tnamevarchar(30)真实姓名
emailvarchar(30)电子邮箱
typeidint(11)负责频道(0表示全部)
logintimedatetime登录时间
loginipvarchar(20)登录IP
dede_admintype系统用户组管理表
ranksmallint(6)组级别编号
typenamevarchar(30)组名称
systemsmallint(6)是否为系统默认组
purviewstext权限列表
dede_arcatt文档自定义属性表
attsmallint(6)编号
attnamevarchar(30)属性名称
dede_archives文章表
IDint(11)自动编号
typeidint(11)所属主栏目编号
typeid2int(11)所属副栏目编号
sortrankint(11)文章排序(置顶方法)
iscommendsmallint(6)是否推荐
ismakesmallint(6)是否生成静态
channelint(11)文章所属模型
arcranksmallint(6)阅读权限
clickint(11)点击次数
moneysmallint(6)消费点数
titlevarchar(80)标题
shorttitlevarchar(36)简略标题
colorvarchar(10)标题颜色
writervarchar(30)作者
sourcevarchar(50)来源
litpicvarchar(100)缩略图
pubdateint(11)录入时间
senddateint(11)发布时间
arcattsmallint(6)自定属性(att)
adminIDint(11)发布管理员ID
memberIDint(11)发布会员ID
descriptionvarchar(250)摘要
keywordsvarchar(60)关键词
templetvarchar(60)文档模板
lastpostint(11)最近评论时间
postnumint(11)评论数目
redirecturlvarchar(150)跳转网址
mtypeint(11)用户自定义分类
useripvarchar(20)用户IP
locklikeidsmallint(6)是否锁定相关文章
likeidvarchar(240)相关文章ID
dede_arcrank阅读权限表
IDint(10)自动编号
ranksmallint(10)权限等级
membernamevarchar(20)等级名称
adminranksmallint(10)管理等级
moneyint(11)消费点数
dede_arctype栏目管理表
IDint(10)栏目编号(自动编号)
reIDint(10)父栏目编号
topIDint(10)
sortranksmallint(6)排序编号
typenamevarchar(30)栏目名称
typedirvarchar(100)栏目目录
isdefaultsmallint(6)栏目列表选项(1链接到默认页0链接到列表第一页-1使用动态页)
defaultnamevarchar(20)默认页的名称
issendsmallint(6)是否支持投稿
channeltypesmallint(6)频道类型
maxpageint(11)保留
ispartsmallint(6)栏目属性
coranksmallint(6)浏览权限
tempindexvarchar(60)封面模板
templistvarchar(60)列表模板
temparticlevarchar(60)文章模板
temponevarchar(60)单独页面模板
namerulevarchar(50)文章命名规则
namerule2varchar(50)列表命名规则
modnamevarchar(30)模板名称
descriptionvarchar(200)栏目介绍
keywordsvarchar(100)关键词
moresitesmallint(6)多站点支持
siterefersmallint(6)多站点站点根目录属性
sitepathvarchar(60)多站点站点根目录
siteurlvarchar(60)多站点绑定域名
ishiddensmallint(6)是否隐藏栏目
dede_area地区表
eidint(11)地区编号
namevarchar(20)地区名称
ridint(11)编号属性
10、DEDE读取其它程序数据库,中文有乱码怎么办?
最近有一个单子,要用到另外一个开源PHP的功能,我把它的数据库导入到和DEDE数据库放在一起,前台功能则完全使用该开源PHP的功能,仅仅对样式做少量修改。
然后把这个开源PHP的后台管理删掉,打算自己在DEDE后台做一个管理功能,去管理这个PHP程序的数据库。
结果用DEDE后台的规范写法,得到界面上来自数据库的中文竟然全是乱码。
在仔细一查数据库,原来DEDE的GBK版的数据表的字符集是GBK的,而这个开源项目的数据表字符集是latin1。
试了一下把数据表改为字符集GBK,结果开源PHP的前台变成了乱码………………
郁闷,应该有办法的,我不要重新写代码!
!
找了一些资料,在DEDE后台代码加入了一行,就还原了中文:
mysql_query("SETNAMES'latin1'");
注意这一行代码,最好放在require_once(dirname(__FILE__).'/config.php');之后
如果导入的数据库是UTF8的,也可以使用mysql_query("SETNAMES'utf8'");
11、mysql的utf8中文排序的解决方法:
最近,处理一个UTF版DEDE的项目时候,自己写了一段代码,需要对文章标题进行排序,但是死活发现排列出来的顺序是乱的!
上网查到原因如下:
在mysql中使用默认字符集为utf8,结果想要把中文按拼音排序出现了问题,排出来的顺序乱七八糟,不是想要的结果!
解决办法如下:
不想改变表定义及默认编码的情况,将字段先转换成gbk编码再排序:
SELECT*FROMdede_archivesORDERBYCONVERT(titleUSINGgbk) asc;
前提是在安装mysql时安装了gbk字符集,不然会报错“ #1115-Unknowncharacterset:
'gbk'”
在编译源码时加上gbk编码即可,如果已经安装好了,重新编译再安装,重新编译安装一般不会影响mysql的已有设置,包括数据都不会受到影响。
12、模板的PHP标签,不要带有funtion定义!
最近,一个客户反映一个莫名其妙的问题:
一种自定义模型的内容页单独生成静态HTML是OK的,但是如果是批量生成的时候后台就空白一片,不能生成。
无论是在管理列表里选多个文章生成,还是在生成内容页哪里选此类文章所在栏目进行生成,都不行!
我当时也有点晕,先是反复怀疑模型定义有什么问题,然后又怀疑是DEDE的dedetag解析代码有问题,通过很复杂的调试方法跟踪代码运行(说实话,这是我第一次触及DEDE最底层的dedetag解析代码,还挺有意思的,大体思路看懂了,但是细节还没完全搞明白,以后再深入研究研究),但是搞了大半天就是没有个所以然~~~
后来,晕乎乎去看CBA了,看着看着球,突然灵光一闪,为什么会忽略掉模板的因素呢?
虽然想不通为什么生成一页可以,连续生成多页就不行,但是也只能先看看模板有什么特殊再说了!
一看不得了,原来模板里别人写了大段大段的php代码,一行行看,突然看到“functionxxxx()”字样的函数定义,结合之前的dedetag解析脑袋一转就想通了:
dedetag解析,对于模板里的PHP代码,是编译成了真正PHP代码,如果模板里有一个function定义,那么在连续生产该模板对应页面的过程中,因为是同一个文件调用的dedetag解析模板,等于这个function被反复定义了,这就不符合PHP的语法规则,正常来说重复定义函数是有报错的,但是由于这些代码是被解析执行的(也可能是主机环境配置的问题),这个错误没有被报告,仅仅是空白一片!
其实上面一堆,一般模板制作者也无需看,只要记住一点:
模板的PHP标签,不要带有funtion定义(与此同理,类似class定义等,都不要做)
13、dede根据文章ID获取文章静态地址的函数
网上搜索到的,原作者已经不清楚是谁了,如果看到请来这里跟帖说明,或者站内信给我~~~
凡是用到公用表的任何模型都可以使用~
增加到inculde\extend.func.php文件最后的?
>之前(如果没有这个文件,请新建一个,并在以下代码前后分别加上
和 ?
>)
复制代码
1.functionGetOneDocUrl($aid)
2.{
3. global$dsql;
4. include_once(DEDEINC."/channelunit.func.php");
5. $aid=trim(ereg_replace('[^0-9]','',$aid));
6.
7. $chRow=$dsql->GetOne("Selectarc.*,ch.maintable,ch.addtable,ch.issystemFrom`2d30_arctiny`arcleftjoin`2d30_channeltype`chonch.id=arc.channelwherearc.id='$aid'");
8.
9. if(!
is_array($chRow)){
10. return$reArr;
11. }
12. else{
13. if(empty($chRow['maintable']))$chRow['maintable']='2d30_archives';
14. }
15.
16. if($chRow['issystem']!
=-1)
17. {
18. $nquery="Selectarc.*,tp.typedir,tp.topid,tp.namerule,tp.moresite,tp.siteurl,tp.sitepath
19. From`{$chRow['maintable']}`arcleftjoin`2d30_arctype`tpontp.id=arc.typeid
20. wherearc.id='$aid'";
21. }
22. else
23. {
24. $nquery="Selectarc.*,1asismake,0asmoney,''asfilename,tp.typedir,tp.topid,tp.namerule,tp.moresite,tp.siteurl,tp.sitepath
25. From`{$chRow['addtable']}`arcleftjoin`2d30_arctype`tpontp.id=arc.typeid
26. wherearc.aid='$aid'";
27. }
28.
29. $arcRow=$dsql->GetOne($nquery);
30.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 织梦 dedeCMS 二次开发 文档 手册