织梦内容管理系统模板代码参考
解析引擎概述 模板设计规范 代码参考
标记参考 arc list(artlis t,lik eart,hotart,imglist,imgin fo lis t,coo lart,specart) fie ld channe lmytag vote friendlink mynews loop channelartlist page list pagelist pagebreakfieldlist
--------------------------------------------------------------------------------
一、织梦模板解析引擎概述
在了解DedeCms的模板代码之前 了解一下织梦模板引擎的知识是非常有意义的。织梦模板引擎是一种使用XML名字空间形式的模板解析器使用织梦解析器解析模板的最大好处是可以轻松的制定标记的属性感觉上就像在用HTML一样使模板代码十分直观灵活新版的织梦模板引擎不单能实现模板的解析还能分析模板里错误的标记。
1、织梦模板引擎的代码样式有如下几种形式
{dede:标记名称属性='值'/}
{dede:标记名称属性='值'} {/dede:标记名称}
{dede:标记名称属性='值'}自定义样式模板(InnerTe xt){/ded e:标记名称}
提示
对于{dede:标记名称属性='值'} {/dede:标记名称}这种形式的标记在2.1版中表示结束只需要用“{/dede}”但
V3中需要严格用“{/dede:标记名称}”否则会报错。
2、织梦模板引擎内置有多个系统标记这些系统标记在任何场合都是能直接使用的。
(1)global标记表示获取一个外部变量除了数据库密码之外能调用系统的任何配置参数形式为
{dede:global name='变量名称'} {/dede:glob al}
或
{dede:global name='变量名称' /}
其中变量名称不能加$符号如变量$cfg_cmspath应该写成{dede:globalname='cfg_cmsp ath' /} 。
(2)fore ach用来输出一个数组形式为
{dede:foreach array='数组名称'}[field:key/] [field:value/]{/de de:foreach}
(3) inc lude引入一个文件形式为
{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")' /}
4、织梦标记允许有限的编程扩展。
格式为
{ded e:tagname runp hp='ye s'}
$aaa=@me;
@me="123456";
{/dede:tagname}
@me表示这个标记本身的值 因此标记内编程是不能使用echo之类的语句的只能把所有返回值传递给@me。
此外由于程序代码占用了底层模板Inner Te xt的内容 因此需编程的标记只能使用默认的Inne r Te xt。
二、 DedeCms模板制作规范
DedeCms系统的模板是非固定的用户可以在新建栏目时可以自行选择栏目模板官方仅提供最基本的默认模板 即是内置系统模型的各个模板 DedeCms支持自定义频道模型用户自定义新频道模型后需要按该模型设计一套新的模板。
一、概念设计和使用模板必须要理解下面几个概念
1、板块封面模板
指网站主页或比较重要的栏目封面使用的模板一般用“index_识别ID.htm”命名此外用户单独定义的单个页面或自定义标记也可选是否支持板块模板标记如果支持系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。
2、列表模板
指网站某个栏目的所有文章列表的模板一般用“li st_识别ID.htm”命名。
3、档案模板
表示文档查看页的模板一般用“artic le_识别ID.htm”命名。
4、其它模板
一般系统常规包含的模板有主页模板、搜索模板、 、 编译功能模板等此外用户也可以自定义一个模板创建为任意文件。
二、 命名为了规范起见织梦官方建议使用统一的方式来命名模板具体如下
1、模板保存位置
模板目录 cmsp ath/temp lets/样式名称英文默认为default其中system为系统底层模板 plus为插件使用的模板 /具体功能模板文件
你的模板位置 “/templets/{风格名称}/功能模板文件” 点击此浏览模板目录
2、 模板文件命名规范
index_识别ID.htm 表示板块栏目封面模板
li st_识别ID.htm 表示栏目列表模板
artic le_识别ID.htm 表示内容查看页文档模板包括专题查看页
searc h.htm 搜索结果列表模板
index.htm 主页模板
注解
你的系统各个内容频道的[识别ID]分别为 (普通文章=>article) (F lash=>flash) (图片集=>ima ge) (软件=>s o ft) (专题=>sp e c)
例 lis t_ima ge.htm表示是就是内容类型为图片集的栏目默认列表模板。
三、主要标记参考
1、 arc list标记
这个标记是De deCms最常用的一个标记其中ho tart、 c oolart、 lik eart、 artli st、imglist、 imginfo li st、 sp ecart这些标记都是由这个标记所定义的不同属性延伸出来的。
作用获取一个指定的文档列表
适用范围封面模板、列表模板、文档模板
(1)基本语法
{dede:arc listtypeid=''row='' col='' titlelen=''info le n=' ' imgwidth='' imghe i ght=' ' lis ttype=''orderb y=''keywo rd=''}
自定义样式模板(I nne rTe xt)
{/dede:arc list}
本标记等同于artlis t、 imglis t、 img info list标记其中与artlis t是完全等同的与imglis t、 imginfo l is t仅是默认的底层模板不同。
(2)属性参考
[1] typ e id=' '表示栏目ID在列表模板和档案模板中一般不需要指定在封面模板中允许用","分开表示多个栏目
[2]row=''表示返回文档行数如果和col联合使用刚结果数等于row*col
[3]col=''表示分多少列显示默认为单列
[4] titlelen=' '表示标题长度
[5] info le n=''表示内容简介长度
[6] imgw id th=''表示缩略图宽度
[7] imghe ight=''表示缩略图高度
[8] type=''表示档案类型其中默认值或type='all'时为普通文档
§type='commend'时表示推荐文档等同于
§typ e='ima ge'时表示必须含有缩略图片的文档
[9]orderby=' '表示排序方式默认值是s enddate按发布时间排列。
§orderby='hot'或orderb y='click'表示按点击数排列
§orderb y='pub date'按出版时间排列即是前台允许更改的时间值
§orderby='s ortrank'按文章的新排序级别排序如果你想使用置顶文章则使用这个属性
§orderb y='id'按文章ID排序
[10]ke ywo rd=''表示含有指定关键字的文档列表多个关键字用","分开
[11] channe lid='数字'表示特定的频道类型 内置的频道专题(-1)、文章(1)、 图集
(2)、 Flash(4)、软件(3)
[12] limi t='起始,结束'表示限定的记录范围 ro w属性必须等于"结束-起始"mysq l的limit语句是由0起始的如“limit 0,5”表示的是取前五笔记录 “l imit 5,5”表示由第五笔记录起取下五笔记录。
(3)底层模板变量
ID(同id),title,iscommend,color,typeid,ismake,description(同info),pubdate,se nddate,arcrank,click,litp ic(同pic name),typed ir,typ ename,arc ur l(同file na me),typ e ur l,s time(pub da te的"0000-00-00"格式),te xt link,typ e l ink,i mglin k,ima ge
其中textlink=<a hre f='arcurl'>title</a>typelink=<a href='typeurl'>typename</a>im glink=<a hre f='arcurl'><img src='p ic na me'b order='0'wid th='imgw id th'he i ght='imghe ight'></a>ima ge=<img s rc='p ic na m e'b order='0'wid th='imgw idth'he ig ht='imghe ight'>
变量调用方法 [fie ld:varname/]
如
{dede:arclist info len='100'}
[fie l d:te xtlink/]
<br>
[field:info/]
<br>
{/dede:arc list}
2、 field标记
这个标记用于获取特定栏目或档桉的字段值及常用的环境变量值
适用范围封面模板、列表模板、文档模板
(1)基本语法
{dede:field name=''/}
(2)name属性的值
板块模板 php url,inde xurl,in dexname,te mp leturl,membe rurl,p owerb y,web name,specurl列表模板pos iti on,title,p hp url,te mp leturl,me mberurl,po werby,inde xurl,inde xname,s pecurl,栏目表dede_arctype的所有字段
其中position为“栏目一>栏目二”这样形式的链接 title则为这种形式的标题文档模板pos itio n,p hp url,temp leturl,memberurl,powerby,in dexurl,ind exname,specurl,id(同ID,aid),档案dede_arc hive s表和附加表的所有字段。
3、 channe l标记
用于获取栏目列表
适用范围封面模板、列表模板、文档模板
(1)基本语法
{dede:channel row='' type=''}
自定义样式模板(I nner Te xt)
{/dede:channel}
(2)属性
[1]ro w='数字'表示获取记录的条数通用在某级栏目太多的时候使用默认是8
[2] typ e=top,s un,se lftyp e='top'表示顶级栏目typ e='s un'表示下级栏目type='self'表示同级栏目
其中后两个属性必须在列表模板中使用。
(3)底层模板变量
ID,typename,typedir,type link(这里仅表示栏目的网址)
例
{dede:channel type='top'}
<a hre f='[fie ld:type link/]'>[fie ld:typename/]</a>
{/dede:channel}
4、myta g标记
用于获取自定义标记的内容
适用范围封面模板、列表模板、文档模板
(1)基本语法
{de de:mytag type id=''name=' ' ismake='' /}
(2)属性
[1] typ e id='数字'表示栏目ID默认为0在没有设定的栏目没有定义这个名称的标记会按如下搜索方式来搜索“先向上查找父栏目->通用标记typ e id=0的同名标记”。
[2]name=''标记名称。
[3] is make=yes|no默认为no表示myta g里的内容不包含其它封面模板的标记 ye s则表示标记内容含有其它封面模板标记。
5、 vo te标记
用于获取一组投票表单
适用范围封面模板
(1)基本语法
{dede:vote id='投票ID' linehe ight='22'tab lewidth='100%' titleb gco lor='#EDEDE2'titlebac kgro und='' tab lebgco lor='#FFFFFF'}
{/dede:vote}
6、 friend link标记等同flink
用于获取友情链接
适用范围封面模板
(1)基本语法
{dede:flink type=''row=''col='' titlelen=' ' tab le style=''} {/dede:flink}属性注解
[1]type链接类型值a. te xta ll全部用文字显示b. te xt im age文字和图得混合排列c. te xt仅显示不带Lo g o的链接d. im age仅显示带Lo go的链接
-------------------------------------
[2]ro w显示多少行默认为4行
[3]col显示多少列默认为6列
[4]titlelen站点文字的长度
[5]tab le style 表示<tab le这里的内容>
7、mynews标记
用于获取站内新闻
适用范围封面模板
(1)基本语法
{dede:mynew s ro w='条数'title le n='标题长度'}Innerte xt{/de de:mynews}Innerte xt支持的字段为 [fie ld:title/],[fie ld:writer/],[fie ld:se ndd ate/](时间),[field:body/]
8、 loop标记
用于调用任意表的数据一般用于调用论坛贴子之类的操作请参阅论坛扩展插件。
9、 channe lartlist标记
用于获取频道的下级栏目的内容列表
适用范围封面模板
语法
{dede:channelArtlist typ eid=0 col=2 tablewidth='100%'}
<tab le width="99%"b order="0"cellp adding="3" cellspacing="1"b gc olor="#BFC FA9"><tr>
<td bgcolor="#E6F2CC">
{dede:type}
<tab le bo rder="0"c e llpadding="0" cellspac ing="0"width="98%">
<tr>
<td width='10%'a lign="ce nter"><img src='[fie ld:glo ba lname='cfg_p lus_d ir'/]/img/channe llis t.gif'width='14'he ight='16'></td>
<td width='60%'>
<a href="[field:typelink/]">[field:typename/]</a>
</td>
<td width='30%'align='right'>
<a href="[field:typelink/]">更多. . .</a>
</td>
</tr>
</tab le>
{/dede:type}
</td>
</tr>
<tr>
<td height="150"valign="top"bgcolor="#FFFFFF">
{dede:arc list row="8"}
·<a href="[field:arcurl/]">[field:title/]</a><br>
{/de de:arc lis t}
</td>
</tr>
</tab le>
<div style='font-size:2px'>&nb sp;</div>
{/dede:channe lArtlist}channe lArtlist是唯一一个可以直接嵌套其它标记的标记不过仅限于嵌套{dede:type} {/de de:type}和{dede:arc list} {/ded e:arc list}
标记。
(1)属性typ e id=0频道ID,默认的情况下嵌套的标记使用的是这个栏目ID的下级栏目如果你想用特定的栏目可以用","分开多个ID。col=2分多列显示tablewidth='100%'外围表格的大小
10、 page标记
表示分页页面的附加参数
适用范围列表模板
语法
{dede:page pagesize="每页结果条数"/}
11、 list标记
表示列表模板里的内容列表
语法
{dede:list co l='' titlelen=' 'info len='' imgwidth='' imghe ight=''orderb y=''} {/d ed e:lis t}
底层模板变量
ID(同id),title,isc ommend,color,typeid,ismake,description(同info),pubdate,send date,arcrank,c lick,litp ic(同pic name),typ ed ir,type name,arc ur l(同file na me),typ e ur l,st ime(p ub date的"0000-00-00"格式),te xt li nk,typ e link,img link,ima ge
12、 pagelist标记
表示分页页码列表
适用范围列表模板
今天有看到Raksmart账户中有一台VPS主机即将到期,这台机器之前是用来测试评测使用的。这里有不打算续费,这不面对万一导致被自动续费忘记,所以我还是取消自动续费设置。如果我们也有类似的问题,这里就演示截图设置Raksmart取消自动续费。这里我们可以看到上图,在对应VPS主机的【其余操作】中可以看到默认已经是不自动续费,所以我们也不要担心被自动续费的。当然,如果有被自动续费,我们确实不想续费的...
vpsdime上了新产品系列-Windows VPS,配置依旧很高但是价格依旧是走低端线路。或许vpsdime的母公司Nodisto IT想把核心产品集中到vpsdime上吧,当然这只是站长个人的猜测,毕竟winity.io也是专业卖Windows vps的,而且也是他们自己的品牌。vpsdime是一家新上来不久的奇葩VPS提供商,实际是和backupspy以及crowncloud等都是同一家公司...
关于HostYun主机商在之前也有几次分享,这个前身是我们可能熟悉的小众的HostShare商家,主要就是提供廉价主机,那时候官方还声称选择这个品牌的机器不要用于正式生产项目,如今这个品牌重新转变成Hostyun。目前提供的VPS主机包括KVM和XEN架构,数据中心可选日本、韩国、香港和美国的多个地区机房,电信双程CN2 GIA线路,香港和日本机房,均为国内直连线路,访问质量不错。今天和大家分享下...