用PHP代码实现灵动标签的技巧

前几天在帝国cms官方群有人问这个问题,解决方法代码来自某篇文章,再次找发现找不到了,我不是这段代码的创造者,我只是这段代码的传播者。

为什么要了解这个技巧
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变量名改下就可以了。
 
举个栗子:调用某网站的全部导航,有顶级栏目,二级栏目;
<ul>
<li class="active"><a href="/">首页</a></li>
<?php
$ecms_bq_sql=sys_ReturnEcmsLoopBq('select classid,classname,classpath from [!db.pre!]enewsclass where bclassid=0 and showclass=0 order by myorder limit 8',20,24,0); $bqno=0;
while($bqr=$empire->fetch($ecms_bq_sql))
{
$bqsr=sys_ReturnEcmsLoopStext($bqr);
$bqno++;
?>
<li>
<a href="<?=$public_r[newsurl]?><?=$bqr[classpath]?>/" title="<?=$bqr[classname]?>"><?=$bqr[classname]?></a>
<div class="navbox">
<?php
$ecms_bq_sql2=sys_ReturnEcmsLoopBq("select classid,classname,classpath from [!db.pre!]enewsclass where bclassid='$bqr[classid]' order by myorder limit 6",20,24,0);
$bqno2=0;
while($bqr2=$empire->fetch($ecms_bq_sql2))
{
$bqsr2=sys_ReturnEcmsLoopStext($bqr2);
$bqno2++;
?>
<a href="<?=$public_r[newsurl]?><?=$bqr2[classpath]?>/" title="<?=$bqr2[classname]?>"><?=$bqr2[classname]?></a>
<?php
}
?>
</div>
</li>
<?php
}
?>
</ul>
由于代码被截掉,详见在下面文件;
 

0 个评论

要回复文章请先登录注册