帝国导航后二级调用及无线循环

帝国CMS用PHP代码实现灵动标签的技巧:
为什么要了解这个技巧
1、通过php代码可以在不支持灵动标签的页面中调用信息。
2、通过php代码来调用信息更灵活,可以支持标签无限嵌套的效果。

如何用PHP代码实现灵动标签的功能
我们先看下灵动标签语法:
[e:loop={栏目ID/专题ID,显示条数,操作类型,只显示有标题图片,附加SQL条件,显示排序}]
模板代码内容
[/e:loop]

上面对应的PHP函数是:
sys_ReturnEcmsLoopBq(栏目ID/专题ID,显示条数,操作类型,只显示有标题图片,附加SQL条件,显示排序)

灵动标签实际对应的原型PHP代码为如下:
<?php
$ecms_bq_sql=sys_ReturnEcmsLoopBq(栏目ID/专题ID,显示条数,操作类型,只显示有标题图片,附加SQL条件,显示排序);
$bqno=0;
while($bqr=$empire->fetch($ecms_bq_sql))
{
        $bqsr=sys_ReturnEcmsLoopStext($bqr);
        $bqno++;
        ?>
        模板代码内容
        <?php
}
?>


怎么做能实现标签无限嵌套的效果?下面举例:
<?php
$ecms_bq_sql=sys_ReturnEcmsLoopBq(栏目ID/专题ID,显示条数,操作类型,只显示有标题图片,附加SQL条件,显示排序);
$bqno=0;
while($bqr=$empire->fetch($ecms_bq_sql))
{
        $bqsr=sys_ReturnEcmsLoopStext($bqr);
        $bqno++;
        ?>
        
        <?php
        $ecms_bq_sql2=sys_ReturnEcmsLoopBq(栏目ID/专题ID,显示条数,操作类型,只显示有标题图片,附加SQL条件,显示排序);
        $bqno2=0;
        while($bqr2=$empire->fetch($ecms_bq_sql2))
        {
                $bqsr2=sys_ReturnEcmsLoopStext($bqr2);
                $bqno2++;
                ?>
                模板代码内容2 <?=$bqr2[title]?>
                <?php
        }
        ?>


        模板代码内容 <?=$bqr[title]?>
        <?php
}
?>

红色部分是二次嵌套,还可以加三次、四次...,由上可以看出通过PHP代码是可以实现标签无限嵌套,只要$ecms_bq_sql、$bqno、$bqr、$bqsr变量名改下就可以了。

调用实例一级二级导航调用实例

<?php
$ecms_bq_sql=sys_ReturnEcmsLoopBq("select * from [!db.pre!]enewsclass where bclassid=0 order by myorder limit 7",14,24,0);
$bqno=0;
while($bqr=$empire->fetch($ecms_bq_sql))
{
$bqsr=sys_ReturnEcmsLoopStext($bqr);
$bqno++;
?> 
<li>
<a href='<?=$public_r[newsurl]?><?=$bqr[classpath]?>/'><?=sub($bqr[classname],0,54,false)?></a>
<p>
<?php
$ecms_bq_sql2=sys_ReturnEcmsLoopBq("select * from [!db.pre!]enewsclass where bclassid=$bqr[classid] order by myorder limit 8",14,24,0);
$bqno2=0;

while($bqr2=$empire->fetch($ecms_bq_sql2))
{
$bqsr2=sys_ReturnEcmsLoopStext($bqr2);
$bqno2++;
?> 
<a href="<?=$public_r[newsurl]?><?=$bqr2[classpath]?>/" ><?=sub($bqr2[classname],0,54,false)?></a>
<?php
}
?></p></li> 
<?php
}
?>

灵动标签调用实例

[e:loop={"select classname,classpath from [!db.pre!]enewsclass where bclassid=0 order by classid ",0,24,0}]
<a href="<?=$public_r[newsurl]?><?=$bqr[classpath]?>" title="<?=$bqr[classname]?>"><?=$bqr[classname]?></a><br>
[/e:loop]

如果是顶级栏目,bclassid就是0;如果是子栏目,bclassid就显示上级栏目ID号。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值