首页技术dedecms技术(DedeCMS 授权)

dedecms技术(DedeCMS 授权)

编程之家2026-05-26967次浏览

大家好,dedecms技术相信很多的网友都不是很明白,包括DedeCMS 授权也是一样,不过没有关系,接下来就来为大家分享关于dedecms技术和DedeCMS 授权的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

dedecms技术(DedeCMS 授权)

DedeCms(织梦)模版制作教程及标记语法详解

一、织梦(Dedecms)简介:

织梦内容管理系统(DedeCms)以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,在经历了二年多的发展,目前的版本无论在功能,还是是易用性方面,都有了长足的发展,DedeCms免费版的主要目标用户锁定在个人站长,功能更专注于个人网站或中小型门户的构建,当然也不乏有企业用户和学校等在使用本系统。织梦内容管理系统(DedeCms)基于PHP+MySQL的技术架构,完全开源加上强大稳定的技术架构,使你无论是目前打算做个小型网站,还是想让网站在不断壮大后系仍能得到随意扩充都有充分的保证。

二、织梦(Dedecms)模板解析引擎概述:

织梦模板引擎是一种使用XML名字空间形式的模板解析器,使用织梦解析器解析模板的最大好处是可以轻松的制定标记的属性,感觉上就像在用HTML一样,使模板代码十分直观灵活,新版的织梦模板引擎不单能实现模板的解析还能分析模板里错误的标记。

1、织梦模板引擎的代码样式有如下几种形式:

{dede:标记名称属性='值'/}

dedecms技术(DedeCMS 授权)

{dede:标记名称属性='值'}{/dede:标记名称}

{dede:标记名称属性='值'}自定义样式模板(InnerText){/dede:标记名称}

小提示:对于{dede:标记名称属性='值'}{/dede:标记名称}这种形式的标记,在2.1版中,表示结束只需要用“{/dede}”,但V3中需要严格用“{/dede:标记名称}”,否则会报错。

2、织梦模板引擎内置有多个系统标记,这些系统标记在任何场合都是能直接使用的。

(1) global标记,表示获取一个外部变量,除了数据库密码之外,能调用系统的任何配置参数,形式为:

a、{dede:global name='变量名称'}{/dede:global}

dedecms技术(DedeCMS 授权)

b、{dede:global name='变量名称'/}

其中变量名称不能加$符号,如变量$cfg_cmspath,应该写成

{dede:global name='cfg_cmspath'/}。

(2) foreach用来输出一个数组,形式为:

{dede:foreach array='数组名称'}[field:key/] [field:value/]{/dede:foreach}

(3) include引入一个文件,形式为:

{dede:include file='文件名称'/}

对文件的搜索路径为顺序为:绝对路径、include文件夹、CMS安装目录、CMS主模板目录

3、织梦标记允许在任何标记中使用函数对得到的值进行处理,形式为:

{dede:标记名称属性='值' function='youfunction("参数一","参数二","@me")'/}

其中@me用于表示当前标记的值,其它参数由你的函数决定是否存在,例如:

{dede:field name='pubdate' function='strftime("%Y-%m-%d%H:%M:%S","@me")'/}

三、DedeCms模板制作规范:

DedeCms系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,DedeCms支持自定义频道模型,用户自定义新频道模型后,需要按该模型设计一套新的模板。

1、概念,设计和使用模板,必须要理解下面几个概念:

1)板块(封面)模板:指网站主页或比较重要的栏目封面使用的模板,一般用“index_识别ID.htm”命名,此外,用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。

2)列表模板:指网站某个栏目的所有文章列表的模板,一般用“list_识别ID.htm”命名。

3)档案模板:表示文档查看页的模板,一般用“article_识别ID.htm”命名。

4)其它模板:一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定义一个模板创建为任意文件。

2、命名,为了规范起见,织梦官方建议使用统一的方式来命名模板,具体如下:

1、模板保存位置:

模板目录:{cmspath/templets/样式名称(英文,默认为default,其中system为系统底层模板,plus为插件使用的模板)/具体功能模板文件}

一般的模板位置:“/templets/default”

2、模板文件命名规范:

1)index_识别ID.htm:表示板块(栏目封面)模板;

2)list_识别ID.htm:表示栏目列表模板;

3)article_识别ID.htm:表示内容查看页(文档模板,包括专题查看页);

4)search.htm:搜索结果列表模板;

5)index.htm:主页模板;

注解:

你的系统各个内容频道的[识别ID]分别为:

例:list_image.htm表示是就是内容类型为图片集的栏目默认列表模板。

3、主要标记参考

1、arclist标记

这个标记是DedeCms最常用的一个标记,其中 hotart、coolart、likeart、artlist、imglist、imginfolist、specart这些标记都是由这个标记所定义的不同属性延伸出来的。

作用:获取一个指定的文档列表

适用范围:封面模板、列表模板、文档模板

(1)基本语法:

{dede:arclist

typeid='' row='' col='' titlelen=''

infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword=''}

自定义样式模板(InnerText)

{/dede:arclist}

本标记等同于artlist、imglist、imginfolist标记,其中与artlist是完全等同的,与imglist、imginfolist仅是默认的底层模板不同。

(2)属性参考:

[1] typeid=''表示栏目ID,在列表模板和档案模板中一般不需要指定,在封面模板中允许用","分开表示多个栏目;

[2] row=''表示返回文档行数,如果和col联合使用,刚结果数等于row* col;

[3] col=''表示分多少列显示(默认为单列);

[4] titlelen=''表示标题长度;

[5] infolen=''表示内容简介长度;

[6] imgwidth=''表示缩略图宽度;

[7] imgheight=''表示缩略图高度;

[8] type=''表示档案类型,其中默认值或type='all'时为普通文档

type='commend'时,表示推荐文档,等同于

type='image'时,表示必须含有缩略图片的文档

[9] orderby=''表示排序方式,默认值是 senddate按发布时间排列。

orderby='hot'或 orderby='click'表示按点击数排列

orderby='pubdate'按出版时间排列(即是前台允许更改的时间值)

orderby='sortrank'按文章的新排序级别排序(如果你想使用置顶文章则使用这个属性)

orderby='id'按文章ID排序

[10] keyword=''表示含有指定关键字的文档列表,多个关键字用","分开

[11] channelid='数字'表示特定的频道类型,内置的频道:专题(-1)、文章(1)、图集(2)、Flash(4)、软件(3)

[12] limit='起始,结束'表示限定的记录范围,row属性必须等于"结束-起始",mysql的limit语句是由0起始的,如“limit 0,5”表示的是取前五笔记录,“limit 5,5”表示由第五笔记录起,取下五笔记录。

(3)底层模板变量

ID(同 id),title,iscommend,color,typeid,ismake,description(同 info),

pubdate,senddate,arcrank,click,litpic(同 picname),typedir,typename,

arcurl(同 filename),typeurl,stime(pubdate的"0000-00-00"格式),

textlink,typelink,imglink,image

其中:

textlink= a href='arcurl'title/a

typelink= a href='typeurl'typename/a

imglink= a href='arcurl'img src='picname' border='0' width='imgwidth' height='imgheight'/a

image= img src='picname' border='0' width='imgwidth' height='imgheight'

变量调用方法:[field:varname/]

如:

{dede:arclist infolen='100'}

[field:textlink/]

br

[field:info/]

br

{/dede:arclist}

2、field标记

这个标记用于获取特定栏目或档桉的字段值及常用的环境变量值

适用范围:封面模板、列表模板、文档模板

(1)基本语法

{dede:field name=''/}

(2) name属性的值:

板块模板:phpurl,indexurl,indexname,templeturl,memberurl,powerby,webname,specurl

列表模板:position,title,phpurl,templeturl,memberurl,powerby,indexurl,indexname,specurl,栏目表dede_arctype的所有字段

其中 position为“栏目一栏目二”这样形式的链接,title则为这种形式的标题

文档模板:position,phpurl,templeturl,memberurl,powerby,indexurl,indexname,specurl,id(同 ID,aid),档案dede_archives表和附加表的所有字段。

3、channel标记

用于获取栏目列表

适用范围:封面模板、列表模板、文档模板

(1)基本语法

{dede:channel row='' type=''}

自定义样式模板(InnerText)

{/dede:channel}

(2)属性

[1] row='数字'表示获取记录的条数(通用在某级栏目太多的时候使用,默认是 8)

[2] type= top,sun,self

type='top'表示顶级栏目

type='sun'表示下级栏目

type='self'表示同级栏目

其中后两个属性必须在列表模板中使用。

(3)底层模板变量

ID,typename,typedir,typelink(这里仅表示栏目的网址)

例:

{dede:channel type='top'}

a href='[field:typelink/]'[field:typename/]/a

{/dede:channel}

4、mytag标记

用于获取自定义标记的内容

适用范围:封面模板、列表模板、文档模板

基本语法

{dede:mytag typeid='' name='' ismake=''/}

属性

[1] typeid='数字'表示栏目ID,默认为 0,在没有设定的栏目没有定义这个名称的标记,会按如下搜索方式来搜索“先向上查找父栏目-通用标记(typeid=0)的同名标记”。

[2] name=''标记名称。

[3] ismake= yes|no默认为 no表示mytag里的内容不包含其它封面模板的标记,yes则表示标记内容含有其它封面模板标记。

5、vote标记

用于获取一组投票表单

适用范围:封面模板

基本语法

{dede:vote id='投票ID' lineheight='22'

tablewidth='100%' titlebgcolor='#EDEDE2'

titlebackground='' tablebgcolor='#FFFFFF'}

{/dede:vote}

6、friendlink标记,等同 flink

用于获取友情链接

适用范围:封面模板

基本语法

{dede:flink type='' row='' col='' titlelen='' tablestyle=''}{/dede:flink}

属性注解:

[1]type:链接类型,值:

a. textall全部用文字显示

b. textimage文字和图得混合排列

c. text仅显示不带Logo的链接

d. image仅显示带Logo的链接

-------------------------------------

[2]row:显示多少行,默认为4行

[3]col:显示多少列,默认为6列

[4]titlelen:站点文字的长度

[5]tablestyle:表示 table这里的内容

7、mynews标记

用于获取站内新闻

适用范围:封面模板

基本语法

{dede:mynews row='条数' titlelen='标题长度'}Innertext{/dede:mynews}

Innertext支持的字段为:[field:title/],[field:writer/],[field:senddate/](时间),[field:body/]

8、loop标记

用于调用任意表的数据,一般用于调用论坛贴子之类的操作,请参阅论坛扩展插件。

9、channelartlist标记

用于获取频道的下级栏目的内容列表

适用范围:封面模板

语法:

{dede:channelArtlist typeid=0 col=2 tablewidth='100%'}

table width="99%" border="0" cellpadding="3" cellspacing="1" bgcolor="#BFCFA9"

tr

td bgcolor="#E6F2CC"

{dede:type}

table border="0" cellpadding="0" cellspacing="0" width="98%"

tr

td width='10%' align="center"img src='[field:global name='cfg_plus_dir'/]/img/channellist.gif' width='14' height='16'/td

td width='60%'

a rel="external nofollow" href="[field:typelink _fcksavedurl=""[field:typelink"/]"[field:typename/]/a

/td

td width='30%' align='right'

a rel="external nofollow" href="[field:typelink/]"更多.../a

/td

/tr

/table

{/dede:type}

/td

/tr

tr

td height="150" valign="top" bgcolor="#FFFFFF"

{dede:arclist row="8"}

·a rel="external nofollow" href="[field:arcurl/]"[field:title/]/abr

{/dede:arclist}

/td

/tr

/table

div style='font-size:2px'/div

{/dede:channelArtlist}

channelArtlist是唯一一个可以直接嵌套其它标记的标记,不过仅限于嵌套

{dede:type}{/dede:type}和{dede:arclist}{/dede:arclist}

标记。

(1)属性

typeid=0频道ID,默认的情况下,嵌套的标记使用的是这个栏目ID的下级栏目,如果你想用特定的栏目,可以用","分开多个ID。

col=2分多列显示

tablewidth='100%'外围表格的大小

10、page标记

表示分页页面的附加参数

适用范围:列表模板

语法:

{dede:page pagesize="每页结果条数"/}

11、list标记

表示列表模板里的内容列表

语法:

{dede:list col='' titlelen=''

infolen='' imgwidth='' imgheight='' orderby=''}{/dede:list}

底层模板变量

ID(同 id),title,iscommend,color,typeid,ismake,description(同 info),

pubdate,senddate,arcrank,click,litpic(同 picname),typedir,typename,

arcurl(同 filename),typeurl,stime(pubdate的"0000-00-00"格式),

textlink,typelink,imglink,image

12、pagelist标记

表示分页页码列表

适用范围:列表模板

语法:

{dede:pagelist listsize="3"/}

listsize表示 [1][2][3]这些项的长度 x 2

13、pagebreak标记

用途:表示文档的分页链接列表。

适用范围:仅文档模板。

语法:{dede:pagebreak/}

14、fieldlist标记

用途:获得附加表的所有字段信息。

适用范围:仅文档模板。

语法:

{dede:fieldlist}

[field:name/]: [field:value/] br

{/dede:fieldlist}

以上就为大家介绍了dedecms模板制作教程的基础知识,由于知识比较杂且多特别是标记语法讲解那段,所以需要大家多多用心学习下,只要用心了,我相信大家都会成为织梦(dedecms)高手的。

Dede CMS是什么

织梦内容管理系统(DedeCms)

以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,在经历了二年多的发展,目前的版本无论在功

能,还是在易用性方面,都有了长足的发展,DedeCms免费版的主要目标用户锁定在个人站长,功能更专注于个人网站或中小型门户的构建,当然也不乏有企

业用户和学校等在使用本系统。织梦内容管理系统(DedeCms)基于PHP+MySQL的技术架构,完全开源加上强大稳定的技术架构,使你无论是目前打

算做个小型网站,还是想让网站在不断壮大后系仍能得到随意扩充都有充分的保证。

企业网站,无论大型还是中小型企业,利用网络传递信息在一定程度上提高了办事的效率,提高企业的竞争力;[1]

政府机关,通过建立政府门户,有利于各种信息和资源的整合,为政府和社会公众之间加强联系和沟通,从而使政府可以更快、更便捷、更有效开展工作;

dedecms

教育机构,通过网络信息的引入,使得教育机构之间及教育机构内部和教育者之间进行信息传递,全面提升教育类网站的层面;

媒体机构,互联网这种新媒体已经强而有力的冲击了传统媒体,在这个演变过程中,各类媒体机构应对自己核心有一个重新认识和重新发展的过程,建立一个数字技术平台以适应数字化时代的需求;

行业网站,针对不同行业,强化内部的信息划分,体现行业的特色,网站含有行业的动态信息、产品、市场、技术、人才等信息,树立行业信息权威形象,为行业内产品供应链管理,提供实际的商业机会;

个人站长,兴趣为主导,建立各种题材新颖,内容丰富的网站,通过共同兴趣的信息交流,可以让您形成自己具有特色的用户圈,产生个人需求,并为其服务,个人用户完全免费使用;

收费网站,内容收费类型的网站,用户可以在线提供产品销售,或者内容收费,简单清晰的盈利模式,确保您以最小的投资,取得最大的回报;

谁清楚phpcms和dedecms各个缺点和优点

phpcms优点:

1.模块化安装,非常适合安装,拆卸,和拿到市场上去交易非常方便的。

2.灵活的标签语法,非常强大。

3.缓存做的非常优秀。几乎支持目前主流的几大缓存系统解决方案,file缓存,eaccelerator缓存,memcache缓存,shmop缓存等

4.安全性也不错的。后台为了防范入侵,采用了cookie和session同时存在验证技术,才可以安全进入后台。

多次登录失败,开启验证码功能。防止机器人频繁猜口令。

5.数据库。在根目录下的include目录下,db_access.php db_mssql.php db_mysql.php等,就照着他的方法,在增加几个也没问题的。

6.兼容性。是在php4的基础上开发的,所以向下兼容性是不错的。在include/global.func.php这个文件可以看到很多 if(!function_exist()){},这些代码就是为了兼容php4相关函数。

phpcms缺点:

1.后台对应的模块的功能列表url,从数据库中读取的,也即是,安装的时候,将url写入数据库了。这个如果二次开发要修改的话,不是很方便的,最好是写到文件中,读取文件内容,方便开发者开发,而且也更容易维护,如果是出于安全考虑的话,不妨加下密也可以的。

2.分部式。后台的某些功能模块,还是要调用各个应用模块的admin部分,相关*.inc.php文件.如果我要把其中某个模块或应用独立出去部署到其他的服务器上,就不方便了。

3.数据库设计问题,后台开设模型时,表的引擎只能是myIsam,而不能选择其他的,字段的类型,比如要开设一个字段为number,类型为int,但是在新增加的模型表中还是以varchar出现,而不是int,长度是默认的255.modelfiled表,才发现该系统是将类型写到该表中了。

4.加密/解密程序。目前已经在想相关安全网站已被爆以破解。这也不是什么新闻了。在开发中,关注下相关安全厂商发布的漏洞。

5.数据库抽象层。就以上提到的几个数据库文件。 db_mssql.php db_mysql.php db_access.php等对于数据库分布式,应该没问题的。数据库抽象层处理数据比较快,且快平台更容易且更容易维护,这个是需要考虑的。

Dedecms功能实用,模板功能使用简单。

关于dedecms技术,DedeCMS 授权的介绍到此结束,希望对大家有所帮助。

ai初学教程?ai新手入门教程王者荣耀个性祈愿币界面在哪?王者荣耀心愿币怎么换成点券