分享

在smarty模板里实现条件判断

 quasiceo 2014-05-25

在smarty模板里实现条件判断  

2011-09-17 11:32:37|  分类: php |举报 |字号 订阅


需求:
在smarty模板里需要判断某个条件成立后只生成一次<div></div>文件
模板文件:
{if ($a_type == 1) &&($v.ii==1)}
<div><a href="http://blog.163.com/man_keke/blog/xxx"></a>
{php} $a_type= 0;{/php}
{/if}
<div></div>
 {if $a_type == 0}</div>{/if}
测试了很久,发现模板文件{php} $a_type= 0;{/php}
程序会都没有生成这个<div></div> 然后看了下smarty的混编文件发现。。smarty这个类调用的是:
<?php echo $this->_tpl_vars['a_type'] ; ?>

$a_type= 0;在模板文件里面生成的是
<?php echo $a_type= 0;?>
所以
{php} $a_type= 0;{/php}
改成:
{php} $this->_tpl_vars['a_type'] = 0;{/php}
程序可以正常实现功能。
那程序是不是完成了呢?
通过测试,还发现一个问题。当你的php文件调用该模板进行多个html生成的时候,有个弊端。就是。当在同一个类生成html文件时,会出现后面的html文件里面里:
{php} $this->_tpl_vars['a_type'] = 0;{/php}
这个问题.都是调用同一个的smarty 类。。没有完成所以这个属性还是成立的

所以在php文件里我是这样用的:

php文件里:

$this->smarty -> assign('a_type',2);//先进行该条件的初始化然后其他的html模板都不会再生成该html文件
        if($a == 0){
            $this->smarty -> assign('a_type',1);
        }

以上内容只是我对某些项目一些心得有更好的方法欢迎指正。。。。具体的环境配置需要自己去体会。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多