帝国cms万能标签调用一栏目下面的所有子栏目

 方法一:帝国CMS技巧:SQL万能标签实现多表指定多栏目信息调用

 

一直想做个最新更新文章的自定义页面,但没有找到如何一次调用多个表的最新文章,在网上搜了好一会,发现了以下的方法,但是本人还没有尝试,希望需要的朋友调试以下

 

[ecmsinfo]'select * from (select * from phome_ecms_表名1 where checked=1 and classid in (1610,1616) union select * from phome_ecms_表名2 where checked=1 and classid in (1289,1290,1291)) a order by newstime desc limit 100',100,40,1,24,54,0[/ecmsinfo] 

注意事项:

1. 红色括号千万别遗漏,不是多余的!

 

2.蓝色部分为指定的栏目ID,切忌必须为终极栏目,如果有多个用“,”分隔。

 

3.多表的时候用union链接。 也可以直接copy这段代码“ union select * from phome_ecms_表名 where checked=1 and classid in (1289,1290,1291)” ,注意union前有空格。

 

4.绿色“24”为操作类型SQL,黄色“54”为标签模板。具体万能标签用法,请参照官方教程,这里不在详解。

 

5. 上面代码是按照时间排序,也可以根据需要显示点击排行或者热门推荐,更多应用还需要自己思考!


 

方法二:帝国CMS灵动标签调用当前父栏目下所有子栏目-支持选中状态/高亮

帝国CMS实现灵动标签调用当前父栏目下所有子栏目-支持选中状态及当前栏目高亮,支持栏目自定义排序。最适用于内容模板,显示父栏目下的子栏目。

支持静态栏目页与动态栏目页

代码如下

1
2
3
4
5
6
7
8
9
10
[e:loop={"select classname,classpath,classid from phome_enewsclass where bclassid='".$class_r[$GLOBALS[navclassid]][bclassid]."' order by myorder,classid desc ",0,24,0}]
<?php  
$classurl=sys_ReturnBqClassname($bqr,9);//取得栏目地址  
?>
<li class="" id="cid<?=$bqr[classid]?>"><a href="<?=$classurl?>"><?=$bqr[classname]?></a></li>
[/e:loop]
<script>
var changeclass=window.document.getElementById('cid[!---self.classid--]');
changeclass.className='on';
</script>

 

以上会将设置为隐藏的栏目也调用出来,以下代码不调用隐藏设置的栏目:

1
2
3
4
5
6
7
8
9
10
[e:loop={"select classname,classpath,classid from phome_enewsclass where bclassid='".$class_r[$GLOBALS[navclassid]][bclassid]."' and showclass=0 order by myorder,classid desc ",0,24,0}]
<?php  
$classurl=sys_ReturnBqClassname($bqr,9);//取得栏目地址  
?>
<li class="" id="cid<?=$bqr[classid]?>"><a href="<?=$classurl?>"><?=$bqr[classname]?></a></li>
[/e:loop]
<script>
var changeclass=window.document.getElementById('cid[!---self.classid--]');
changeclass.className='on';
</script>

 

也就是增加了:

1
and showclass=0

0为显示,1为不显示


方法三:帝国CMS后台自带的导航标签模板调出来的导航没有子栏目,且不带样式,可改用灵动标签实现顶级栏目循环并当前栏目高亮,还可以调出当前栏目下的子栏目,可用作导航下拉。

[e:loop={"select classid,classname from {$dbtbpre}enewsclass where bclassid=0 order by myorder,classid asc",0,24,0}]

<?php

$classurl=sys_ReturnBqClassname($bqr,9);//取得栏目地址

$style="";

if($GLOBALS[navclassid])

{

$fcr=explode('|',$class_r[$GLOBALS[navclassid]][featherclass]);

$topbclassid=$fcr[1]?$fcr[1]:$GLOBALS[navclassid];//取得当前栏目的一级栏目ID

if($bqr[classid]==$topbclassid)

{

$style="current-menu-item";

}

}

?>

<li class="<?=$style?>"><a href="<?=$classurl?>"><?=$bqr[classname]?></a>

<ul><li class='litop'></li>

  <?php

    //取得栏目下的子栏目       

    $newsclass=$empire->query("select classid,classname from ".$dbtbpre."enewsclass where bclassid=".$bqr[classid]." order by myorder,classid asc limit 11");

 while($classr=$empire->fetch($newsclass))

    {  

    $classrurl=sys_ReturnBqClassname($classr,9); //取得子栏目地址

        ?>

 <li><a href="<?=$classrurl?>"><?=$classr[classname]?></a></li>

  <?php

    }

    ?>

  

</ul>

</li>

[/e:loop]

另可调出栏目简介、栏目缩略图


[e:loop={"select classid,classname,classimg,intro from {$dbtbpre}enewsclass where bclassid=0 order by myorder,classid asc",0,24,0}]

<?=$bqr[classimg]?> //栏目缩略图

  

<?=$bqr[intro]?> //栏目简介

 

[/e:loop]

 

方法四:如何获取多个栏目或指定栏目下所有子栏目的文章列表 

 

[e:loop={"1,2",10,0,0,'','newstime DESC'}]
<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br>
[/e:loop]

这个应该是你需要的代码
同时调用多个栏目下面的文章时,栏目id之间用逗号分开。同时用引号将id括起来。用灵动标签调用,多个栏目ID用逗号隔开

 
方法五:帝国cms 灵动标签【列表页】调用当前父栏目下的所有子栏目
<?
$bclassid = $class_r[$GLOBALS[navclassid]][bclassid]; //获取当前父栏目ID
?> [e:loop={"select classid,classname,classpath from [!db.pre!]enewsclass where bclassid = ‘$bclassid’ order by classid”,0,24,0}]<!-取得父栏目下的子栏目-> <li><a href=”<?=$public_r[newsurl].$bqr[classpath]?>/”><?=$bqr[classname]?></a></li> [/e:loop]

 

扫一扫手机访问