深入了解DedeCMS模板引擎:DIY技巧与织梦模板代码解析
没想到dedecms可以这样DIY,牛啊

地址:
在了解 DedeCms 的模板代码之前,去了解一下织梦模板引擎的相关知识是很有意义的。织梦模板引擎是一种模板解析器,其形式为 XML 名字空间。使用织梦解析器来解析模板,有一个很大的好处,那就是能够轻松地制定标记的属性,这种感觉就如同在使用 HTML 一般。这使得模板代码变得十分直观且灵活。新版的织梦模板引擎,不仅能够实现模板的解析,还能够分析模板里错误的标记。
1、织梦模板引擎的代码样式有如下几种形式:
{dede:标记名称属性='值'/}
{dede:标记名称属性='值'}{/dede:标记名称}
自定义样式模板,其 InnerText 部分有特定属性。这种样式模板具有独特的 InnerText 属性。自定义的样式模板,其 InnerText 具有相应的属性。
提示:
如果使用带底层模板的标记,就必须严格按照{dede:标记名称属性='值'}{/dede:标记名称}这样的格式来使用,不然就会报错。
织梦模板引擎内置了许多系统标记,这些系统标记在所有的场合都可以直接被使用。
global 标记意味着获取一个外部变量,它可以调用系统的除数据库密码之外的任何配置参数,其形式为:
变量名称所对应的内容。
或
{dede:globalname='变量名称'/}
其中变量名称不能添加$符号,例如变量“cfg_cmspath”,需要写成{dede:global name='cfg_cmspath'}。
(2)foreach用来输出一个数组,形式为:
使用 foreach 循环遍历数组名称,对于每一个元素,分别输出其键名和键值。
(3)include引入一个文件,形式为:
{dede:includefile='文件名称'},判断是否为 dede 板块模板的条件为{ismake}。如果{ismake}为 yes,则进行包含文件的操作;如果{ismake}为 no,则不进行包含文件的操作。
对文件的搜索路径有这样的顺序:首先是绝对路径,接着是 include 文件夹,然后是 CMS 安装目录,最后是 CMS 主模板目录
织梦标记能够在所有标记里运用函数来处理所得到的值,其形式为:
使用了“dede:标记名称属性='值'function='youfunction("参数一","参数二","@me")'”这个内容,具体的含义和作用需要根据相关的编程环境和代码逻辑来确定,它可能是用于特定的页面生成、数据处理或其他编程任务中的一个功能调用或标记定义。
其中@me 是用来表示当前标记的值的,而其它参数则由你的函数来决定是否存在,例如:
{dede:fieldname='pubdate' function='strftime("%Y 年 %m 月 %d 日 %H 时 %M 分 %S 秒","@me")'}
4、织梦标记允许有限的编程扩展。
格式为:
{dede:tagnamerunphp='yes'}
$aaa=@me;
@me="123456";
{/dede:tagname}
这个标记@me 本身的值由@me 表示,所以在标记内进行编程时不能使用 echo 这类语句,而只能将所有返回值传递给@me。
此外,因为程序代码把底层模板 InnerText 的内容给占用了,所以需要编程的标记只能够使用默认的 InnerText。