织梦DedeCMS模板引擎是一种使用XML命名空间的模板解析器,能够有效地解析模板代码。其最大的优势在于可以轻松地定义标记的属性,让模板代码既直观又灵活。此外最新版织梦模板引擎不仅支持模板解析,还能自动分析模板中的错误标记。
一、DedeCMS模板引擎代码样式
在DedeCMS模板引擎中,代码样式主要有以下几种形式:
1、单标签样式
{dede:标记名称 属性="值"/}
2、起止标签样式
{dede:标记名称 属性="值"}{/dede:标记名称}
3、带自定义样式的标签
{dede:标记名称 属性="值"}自定义样式模板(InnerText){/dede:标记名称}
注意:使用具有底层模板的标记时,务必严格遵循第二种格式,即”{dede:标记名称 属性=”值”}{/dede:标记名称}”。不符合格式将导致错误。
二、DedeCMS内置系统标记
DedeCMS模板引擎内置了多种系统标记,用户可以在任何情况下直接使用。以下是几个常用的标记:
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="文件名称" ismake="是否为dede板块模板(yes/no)"/}
文件的搜索顺序为:绝对路径、”include”目录、CMS安装目录和CMS主模板目录。
三、DedeCMS标记中使用函数处理值
DedeCMS标记支持在任何标签中应用函数对获取的值进行处理,格式为:
{dede:标记名称 属性="值" function="your_function("参数一","参数二","@me")"/}
其中,”@me” 表示当前标记的值,其它参数根据需要由你的函数决定。举个例子:
{dede:field name="pubdate" function="strftime("%Y-%m-%d %H:%M:%S","@me")"/}
四、DedeCMS编程扩展
DedeCMS标记还允许有限的编程扩展,格式为:
{dede:标记名称 runphp="yes"} $aaa = @me; @me = "123456"; {/dede:标记名称}
这里的 “@me” 表示当前标记的值。在标记内部不允许使用”echo”等输出语句,所有返回值需通过 “@me” 进行传递。另外,由于程序代码占用了底层模板的InnerText内容,因此带有编程的标记只能使用默认的InnerText。