教学之友,学习之友。

站长教学网

当前位置: 站长教学网 > 开源代码 > cms教程 >

dedecms动态模板类dedetemplate.class.php解说(2)

时间:2012-06-19 16:24来源:未知 作者:ken 点击:

(7) 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}

(8) 遍历一个 array 数组

{dede:array.name}
  {dede:key/} = {dede:value/}
{/dede:array}

各种语法的具体编译后的代码,可查看 dede-template-class.php 的 function CompilerOneTag(&$cTag)。

块调用示例代码:
1、示例一

{tag:datalist   timeformat=""}<br />
    <tr><br />
      <td class='col1'><br />
          <div>?<a   href='{tag:field.arcurl/}'>{tag:field.title/}</a></div><br />
          <!--div   class='descriptions'>&nbsp;&nbsp;&nbsp;&nbsp;{tag:field.description   function="CnSubstr(@me,150)"/}...</div--><br />
      </td><br />
      <td   class='col2'>{tag:field.formattime/}</td><br />
      </tr><br />
  {/tag:datalist}

编译后的代码

<?php
$atts = array();
$atts['tagname'] = 'datalist';
$atts['timeformat'] = '';
$blockValue = $this->refObj->GetArcList($atts,$this->refObj,$fields);
foreach( $blockValue as $key=>$fields )
{
?>
<tr>
<td class='col1'>
<div>?<a href='<?php echo $fields['arcurl']; ?>'><?php echo $fields['title']; ?></a></div>
<!--div class='descriptions'>&nbsp;&nbsp;&nbsp;&nbsp;<?php echo CnSubstr($fields['description'],150); ?>...</div-->
</td>
<td class='col2'><?php echo $fields['formattime']; ?></td>
</tr>
<?php
}
?>
 

2、示例二
{tag:article sort='new'   titlelen='36' row='10'}<br />
     <dd>[{tag:field.typename/}]<a   href="{tag:field.arcurl/}">{tag:field.title   function="CnSubstr(@me,24)"/}</a></dd><br />
{/tag:article}

编译后的代码
<?php
$atts = array();
$atts['tagname'] = 'article';
$atts['sort'] = 'new';
$atts['titlelen'] = '36';
$atts['row'] = '10';
$blockValue = MakePublicTag($atts,$this->refObj,$fields);
if(is_array($blockValue) && count($blockValue) > 0){
foreach( $blockValue as $key=>$fields )
{
?>
<dd>[<?php echo $fields['typename']; ?>]<a href="<?php echo $fields['arcurl']; ?>"><?php echo CnSubstr($fields['title'],24); ?></a></dd>
<?php
}
}
?>
 

 

 



 

(责任编辑:ken)
TAG标签: 模板 dedecms
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容