关于自定义标签嵌套传递变量问题

浏览:1733 发布日期:2013/11/18 分类:技术分享 关键字: 自定义标签嵌
这个问题开始也困扰了我好几天,我查阅了很多资料,也发现同样用TP的同行遇到相同问题,后面其他给给的回复也七花八门,但是都没有实际解决问题,经过我一下午的实践终于得出解决方案,代码如下:
自定义两个标签,glist和channel,glist嵌套于channel,需要channel传递一个值
    protected $tags = array (//attr 属性列表 close 是否闭合(0 或者1 默认1) alias 标签别名 level 嵌套层次
        'glist' => array ('attr' => 'row,typeid, 'level' => 1),
        'channel' => array ('attr' => 'limit,id,orderby', 'level' => 1),
    );
_glist我在这就不写了,关键是channel怎么写,_channel上面一部分我也不写了,只需要在最后面加一句话        $parsestr = '<?php $_result='.$sql.'; if ($_result): $'.$key.'=0;';  
        $parsestr .= 'foreach($_result as $key=>$'.$result.'):';  
        $parsestr .= '++$'.$key.';$mod = ($'.$key.' % '.$mod.' );?>';  
        $parsestr .= $content; 
        $parsestr .= '<?php endforeach; endif;?>';
        $parsestr=str_replace("typeid=ch.aid","typeid=\$ch[aid]",$parsestr);
        return $parsestr; 
然后在贴出模板里代码:<wj:channel id='1'>
 <a href="{$ch.typedir}">{$ch.aname}</a><br/>
 <wj:arclist typeid="ch.aid">
     二级栏目:<a href="{$vo.arcurl}">{$vo.title}</a><br/>
 </wj:arclist>
</wj:channel>
$parsestr=str_replace("typeid=ch.aid","typeid=\$ch[aid]",$parsestr);这一句关键,你们懂的.
最佳答案
评论( 相关
后面还有条评论,点击查看>>