首页 > CMS > 织梦DEDE > 正文

dedecms动态模板引擎标记语法

2024-07-12 07:51:46
字体:
来源:转载
供稿:网友

标记语法

标记通用特性

① 短标记
{dede:tagname.name/}
等同于
{dede:tagname name='' /}
② 块标记
{dede:tagname}
循环代码
{/dede:tagname}

标记的具体语法及对应的PHP代码

① 配置变量
{dede:config name='' value=''/}
配置变量可以在载入模板后通过 $tpl->GetConfig($name) 获得,仅作为配置,不在模板中显示。
② 短标记

{dede:global.name/}   外部变量      等同于 <?php echo $name; ?>
{dede:var.name/}      var数组       等同于 <?php echo $_vars['name']; ?>
{dede:field.name/}    field数组     等同于 <?php echo $fields['name']; ?>
{dede:cfg.name/}      系统配置变量  等同于 <?php echo $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.namecfg.name 表示相应的变量。
如:
{dede:if field.id>10 }
{/dede:if}

7.遍历一个 array 数组

{dede:array.name}
  {dede:key/} = {dede:value/}
{/dede:array}
各种语法的具体编译后的代码,可查看dedetemplate.class.phpfunction CompilerOneTag(&$cTag)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表