DEDECMS标签手册
模板语法
织梦模板引擎是一种使用XML名字空间形式的模板解析器,使用织梦解析器解析模板的最大好处是可以轻松的制定标记的属性,感觉上就像在用HTML一样,使模板代码十分直观灵活,新版的织梦模板引擎不单能实现模板的解析还能分析模板里错误的标记。 织梦模板引擎的代码样式
{dede:标记名称 属性='值'/}
{dede:标记名称 属性='值'}{/dede:标记名称}
{dede:标记名称 属性='值'}自定义样式模板(InnerText){/dede:标记名称} 注:如果使用带底层模板的标记,必须严格用{dede:标记名称 属性='值'}{/dede:标记名称} 这种格式,否则会报错。 内置系统标记
① global 标记,表示获取一个外部变量,除了数据库密码之外,能调用系统的任何配置参数,形式为:
{dede:global name='变量名称'}{/dede:global} 或
{dede:global name='变量名称'/} 其中变量名称不能加$符号,如变量$cfg_cmspath,应该写成{dede:global name='cfg_cmspath'/}。 ② foreach 用来输出一个数组,形式为:
{dede:foreach array='数组名称'}[field:key/] [field:value/]{/dede:foreach} ③ include 引入一个文件,形式为:
{dede:include file='文件名称' ismake='是否为dede板块模板(yes/no)'/}
对文件的搜索路径为顺序为:绝对路径、include文件夹,CMS安装目录,CMS主模板目录
自定义函数使用
{dede:标记名称 属性='值' function='youfunction(\参数一\参数二\其中 @me 用于表示当前标记的值,其它参数由你的函数决定是否存在,例如: {dede:field name='pubdate' function='strftime(\织梦标记允许有限的编程扩展 格式为:
{dede:tagname runphp='yes'} $aaa = @me; @me = \{/dede:tagname}
@me 表示这个标记本身的值,因此标记内编程是不能使用echo之类的语句的,只能把所有返回值传递给@me。
此外由于程序代码占用了底层模板InnerText的内容,因此需编程的标记只能使用默认的InnerText。
标记语法
标记通用特性
① 短标记
{dede:tagname.name/} 等同于
{dede:tagname name='' /} ② 块标记 {dede:tagname} 循环代码
{/dede:tagname}
标记的具体语法及对应的PHP代码 ① 配置变量
{dede:config name='' value=''/}
配置变量可以在载入模板后通过 $tpl->GetConfig($name) 获得,仅作为配置,不在模板中显示。
② 短标记
{dede:global.name/} 外部变量 等同于
{dede:var.name/} var数组 等同于 {dede:field.name/} field数组 等同于 {dede:cfg.name/} 系统配置变量 等同于
考虑到大多数情况下都会在函数或类中调用模板,因此 $_vars、$fields 数组必须声明为 global 数组,否则模板引擎无法获得它的值从而导致产生错误。 ③ 自由调用块标记
{tag:blockname bind='GetArcList' bindtype='class'} 循环代码
{/tag:blockname} 必要属性:
bind 数据源来源函数
bindtype 函数类型,默认是 class 可选为 sub
rstype 返回结果类型,默认是 array ,可选项为 string
自定义函数格式必须为 function(array $atts,object $refObj, array $fields); 在没有指定 bind 绑定的函数的情况下,默认指向 MakePublicTag($atts,$tpl->refObj,$fields) 统一管理。
④ 固定块标记
1.datalist
从绑定类成员函数GetArcList中获取数组并输出 {dede:datalist} 循环代码
{/dede:datalist}
遍历一个二给维数组,数据源是固定的,只适用用类调用。 等同于
{tag:blockname bind='GetArcList' bindtype='class' rstype='arrayu'} 循环代码 {/tag:blockname} 2.label
从绑定函数中获取字符串值并输出
等同于 {tag:blockname bind='func' bindtype='sub' rstype='string'/} 3.pagelist
从绑定类成员函数GetPageList中获取字符串值并输出
等同于 {tag:blockname bind='GetPageList' bindtype='class' rstype='string'/} 4.include
{dede:include file=''/}
{dede:include filename=''/} 5.php {dede:php php 代码 /} 或 {dede:php} php代码 {/dede:php}
6.If
仅支持 if ,else ,else 直接用{else}表示,但不支持{else if}这样的语法 ,一般建议模板中不要使用太复杂的条件语法,如果确实有需要,可以直接使用 php 语法。 {dede:if 条件} a-block {else} b-block {/dede:if}
条件中允许使用 var.name 、global.name 、field.name、cfg.name 表示相应的变量。 如:
{dede:if field.id>10 } {/dede:if}
7.遍历一个 array 数组
{dede:array.name}
{dede:key/} = {dede:value/} {/dede:array}
各种语法的具体编译后的代码,可查看dedetemplate.class.php的function CompilerOneTag(&$cTag)。
标签的分类
每个标签都会有他的作用域,上文中我们可以了解系统文档页面可以分为:封面、列表、内容几个部分,每个页面的模板则会涉及到不同的标签,所以标签也有了他的作用域,我们在模板制作过程中主要根据模板的作用域来对模板进行如下划分: 全局标签
可以在前台文档任意页面使用的模板标记,例如:arclist、channel、sql、loop等。 列表标签
仅在模板*_list.htm中可以使用的标签,例如:list、pagelist。 内容标签
仅在模板*_.article.htm中可以使用的模板标记,例如:likearticle、pagebreak等。
模块标签
仅在特定的模块、插件中使用的模板标记
全局标签
arclist 文档列表
(DedeCMS > 3.0,DedeCMS 4,DedeCMS 5) 名称:arclist
功能:用于获取系统主从表模型(如:文章、软件、图集、商品等)的一列文档,也称自由列表块标记,其中imglist、imginfolist、specart、coolart、autolist都是由该标记所定义的不同属性延伸出来的别名标记。 语法:
{dede:arclist flag='h' typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword='' limit='0,1'}
[field:title/] {/dede:arclist}
文件:
\\include\\taglib\\arclist.lib.php
function lib_arclist(&$ctag,&$refObj) 默认底层模板:
imglist:part_imglist.htm
imginfolist:part_imginfolist.htm arclist:part_arclist.htm 参数:
col='' 分多少列显示(默认为单列),5.3版中本属性可以通过多种方式进行多行显示 如果col='1'要多列显示的可用div+css实现 以下为通过div+css实现多列的范例:
{dede:arclist row='10' titlelen='24' orderby='pubdate' idlist='' col='2'}
?[field:textlink/]([field:pubdate function=MyDate('m-d',@me)/])
{/dede:arclist}
当col>1将使用原来的table多列方式显示 row='10' 返回文档列表总数
相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




