一、织梦模板理会引擎概述 在相识DedeCms的模板代码之前,相识一下织梦模板引擎的常识长短常有意义的。织梦模板引擎是一种利用XML名字空间形式的模板理会器,利用织梦理会 器理会模板的最大长处是可以轻松的拟定标志的属性,感受上就像在用HTML一样,使模板代码十分直观机动,新版的织梦模板引擎不光能实现模板的理会还能分 析模板里错误的标志。
1、织梦模板引擎的代码样式有如下几种形式:
{dede:标志名称 属性='值'/}
{dede:标志名称 属性='值'}{/dede:标志名称}
{dede:标志名称 属性='值'}自界说样式模板(InnerText){/dede:标志名称}
提示:
对付{dede:标志名称 属性='值'}{/dede:标志名称}这种形式的标志,在2.1版中,暗示竣事只需要用“{/dede}”,但
V3中需要严格用“{/dede:标志名称}”,不然会报错。
2、织梦模板引擎内置有多个系统标志,这些系统标志在任何场所都是能直接利用的。
(1) global 标志,暗示获取一个外部变量,除了数据库暗码之外,能挪用系统的任何设置参数,形式为:
{dede:global name='变量名称'}{/dede:global}
或
{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、板块(封面)模板:
指网站主页或较量重要的栏目封面利用的模板,一般用“index_识别ID.htm”定名,另外,用户单独界说的单个页面或自界说标志,也可选是否支持板块模板标志,假如支持,系统会用板块模板标志引擎去理会后才输出内容或生成特定的文件。
2、列表模板:
指网站某个栏目标所有文章列表的模板,一般用 “list_识别ID.htm” 定名。
3、档案模板:
暗示文档查察页的模板,一般用 “article_识别ID.htm” 定名。
4、其它模板:
一般系统通例包括的模板有:主页模板、搜索模板、RSS、JS编译成果模板等,另外用户也可以自界说一个模板建设为任意文件。
二、 定名,为了类型起见,织梦官方发起利用统一的方法来定名模板,详细如下:
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 暗示是就是内容范例为图片集的栏目默认列表模板。
三、主要标志参考
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 标志
用于获取自界说标志的内容
合用范畴:封面模板、列表模板、文档模板
(1)根基语法
{dede:mytag typeid='' name='' ismake='' /}
(2)属性
[1] typeid = '数字' 暗示栏目ID,默认为 0,在没有设定的栏目没有界说这个名称的标志,会按如下搜索方法来搜索“先向上查找父栏目 -> 通用标志(typeid=0)的同名标志”。
[2] name = '' 标志名称。
[3] ismake = yes|no 默认为 no 暗示mytag里的内容不包括其它封面模板的标志,yes则暗示标志内容含有其它封面模板标志。
5、vote 标志
用于获取一组投票表单
合用范畴:封面模板
(1) 根基语法
{dede:vote id='投票ID' lineheight='22'
tablewidth='100%' titlebgcolor='#EDEDE2'
titlebackground='' tablebgcolor='#FFFFFF'}
{/dede:vote}
6、friendlink 标志,等同 flink
用于获取友情链接
合用范畴:封面模板
(1)根基语法
{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 标志
用于获取站内新闻
合用范畴:封面模板
(1) 根基语法
{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 href=http://www.dede58.com/"[field:typelink /]">[field:typename /]</a>
</td>
<td width='30%' align='right'>
<a href=http://www.dede58.com/"[field:typelink /]">更多...</a>
</td>
</tr>
</table>
{/dede:type}
</td>
</tr>
<tr>
<td height="150" valign="top" bgcolor="#FFFFFF">
{dede:arclist row="8"}
·<a href=http://www.dede58.com/"[field:arcurl /]">[field:title /]</a><br>
{/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网站模板建造利用要领
内容版权声明:除非注明,否则皆为本站原创文章。