首页 > 其他 > 网站日记>正文

帝国cms灵动标签的嵌套使用

提示: 阅读权限:公开  

灵动标签的嵌套使用

灵动标签是帝国cms 的大杀器

方便,强大,高效。  小遗憾是不能嵌套

曾经,管理员给出了姑息的嵌套用法: http://bbs.phome.net/showthread-13-146819-0.html

高效是无疑的,但是基本是源代码了

谈不上方便了。2016年正月 本宝宝猴年初六发威,修改帝国cms的一个函数,实现灵动的嵌套

干货:

 

修改 e/class/functions.php

函数:DoRepEcmsLoopBq  修改为

//替换灵动标签

function DoRepEcmsLoopBq($temp){

        $yzz="/[e:loop(d*)={(.+?)}](.+?)[/e:loop1]/is";

        $xzz="<?php

$bqno1=0;

$ecms_bq_sql1=sys_ReturnEcmsLoopBq(2);

if($ecms_bq_sql1){

while($bqr1=$empire->fetch($ecms_bq_sql1)){

$bqsr1=sys_ReturnEcmsLoopStext($bqr1);

$bqno1++;

?>3<?php

}

}

?>";

        while(preg_match($yzz,$temp)){

        $temp=preg_replace($yzz,$xzz,$temp);

        }

        $temp=DoRepEcmsIndexLoopBq($temp);

        return $temp;

}

//对索引灵动函数,我们也可以做类似的处理,这样索引灵动标签就可以嵌套了。


 

//替换索引灵动标签

function DoRepEcmsIndexLoopBq($temp){

        $yzz="/[e:indexloop(d*)={(.+?)}](.+?)[/e:indexloop1]/is";

        $xzz="<?php

$bqno1=0;

$ecms_bq_sql1=sys_ReturnEcmsIndexLoopBq(2);

if($ecms_bq_sql1){

while($indexbqr1=$empire->fetch($ecms_bq_sql1)){

if(empty($class_r[$indexbqr1['classid']]['tbname'])){continue;}

$bqr1=$empire->fetch1("select * from {$dbtbpre}ecms_".$class_r[$indexbqr1['classid']]['tbname']." where id='$indexbqr1[id]'");

$bqsr1=sys_ReturnEcmsLoopStext($bqr1);

$bqno1++;

?>3<?php

}

}

?>";

while(preg_match($yzz,$temp)){

        $temp=preg_replace($yzz,$xzz,$temp);

        }

        return $temp;

}



这样处理后,嵌套方法见下边,嵌套的逻辑正确性写代码的负责。

 

[e:loop={...}]

       ...  

     // $bqr[...],$bqno;

      [e:loop2={...}]

             //$bqr2[...],$bqno2;

             [e:loop3={...}]

                    //$bqr3[...],$bqno3;

              [/e:loop3] ...

      [/e:loop2] ...

[/e:loop]

上一篇:帝国cms多端登录

下一篇:帝国cms灵动标签下如何调用某标题的tags

tags: 帝国cms 帝国 嵌套 科普 灵动标签

返回首页

相关

热门

站内直通车

[!--temp.bottomnav--]
返回顶部