技术文摘

帝国cms首页调用全部栏目及相关字段

作者:雨祺   发表于:
浏览:56次    字数:2366  原创
级别: 站长   总稿: 69 篇,  月稿: 0
4414论坛某坛友提到以下要求:

目前需要在首页调用本站的所有栏目,包括,排序序号递增、栏目名称、栏目缩略图,别名,自定义栏目字段(标红的这2个字段调用不出来),[color=#000]各位大神怎么调用的,有偿!显示结果如下:
[color=#000]1、栏目名称A、栏目缩略图、栏目别名、栏目自定义字段
[color=#000]2、栏目名称B、栏目缩略图、栏目别名、栏目自定义字段
[color=#000]3、栏目名称C、栏目缩略图、栏目别名、栏目自定义字段
[color=#000]...

其实是可以用灵动标签解决的,相关代码如下:
  1. [e:loop={"select  *  from {$dbtbpre}enewsclass where bclassid=0  order by myorder,classid asc",0,24,0}] 
  2. <?php   
  3. $classurl=sys_ReturnBqClassname($bqr,9);//取得栏目地址   
  4. $class="";   
  5. if($GLOBALS['navclassid'])  {   
  6. $fcr=explode('|',$class_r[$GLOBALS['navclassid']]['featherclass']);   
  7. $topbclassid=$fcr[1]?$fcr[1]:$GLOBALS['navclassid'];//取得当前栏目的一级栏目ID   
  8. if($bqr[classid]==$topbclassid)  {   
  9. $class=" class='on'";    
  10. }   
  11. }   
  12. ?> 
  13. <li<?=$class?>> 
  14. <a href="<?=$classurl?>" class="tit link">大栏目:<?=$bqr['classname']?>(<?=$bqr['intro']?>)</a> 
  15. <div class="menu">子栏目: 
  16. <?php   
  17. $ecms_bq_sql2=sys_ReturnEcmsLoopBq("select  *  from [!db.pre!]enewsclass where bclassid='$bqr[classid]' order by myorder limit 10",20,24,0);   
  18. $bqno2=0;   
  19. while($bqr2=$empire->fetch($ecms_bq_sql2))  {   
  20. $bqsr2=sys_ReturnEcmsLoopStext($bqr2);   
  21. $bqno2++;   
  22. ?> 
  23. <a href="/<?=$bqr2['classpath']?>/"><?=$bqr2['classname']?></a> 
  24. <?php   
  25. }   
  26. ?> 
  27. </div> 
  28. </li> 
  29. [/e:loop] 
那如果写成接口的形式那又怎么写呢,以本人二开基础上面写个。写法如下
  1. // 获取顶级类别信息 
  2. $list = $api->load('db')->select('[!db.pre!]enewsclass''bclassid,classid,classname,classpagekey,intro,tbname''bclassid='.$bclassid.' and classid not in(100,133,180,188,216)''showclass='.$showclass, 'myorder DESC'); 
  3. $result = [];// 初始化结果数组 
  4. // 获取所有子类别信息 
  5. foreach ($list as $top) { 
  6.     $son = $class_r[$top['classid']]['sonclass']; 
  7.     $sonarr = explode("|", $son); 
  8.     array_shift($sonarr);  
  9.     array_pop($sonarr); 
  10.     $classtr = implode(",", $sonarr); 
  11.     if ($classtr) { 
  12.         $sonclass_sql = "classid in (" . $classtr . ")"
  13.         $lists = fetch_memcache0("select * from {$dbtbpre}enewsclass where $sonclass_sql"'Memcached''alltype', 3600 * 24 * 30); 
  14.         $topData = [ 
  15.             'topclassid' => $top['classid'], 
  16.             'topclassname' => $top['classname'], 
  17.             'topmid' => $class_r[$top['classid']]['modid'], 
  18.             'topclasspagekey' => $top['classpagekey'], 
  19.             'topintro' => $top['intro'], 
  20.             'sonclassid' => [], 
  21.             'sonclassname' => [], 
  22.             'sonclasspath' => [], 
  23.             'sonintro' => [], 
  24.             'sonmid' => [] 
  25.         ]; 
  26.         foreach ($lists as $class) { 
  27.             $topData['sonclassid'][] = $class['classid']; 
  28.             $topData['sonclassname'][] = $class['classname']; 
  29.             $topData['sonmid'][] = $class_r[$class['classid']]['modid']; 
  30.             $topData['sonclasspath'][] = $class['classpath']; 
  31.             $topData['sonintro'][] = $class['intro']; 
  32.         } 
  33.         $result[] = $topData; // 将顶级类别信息添加到结果数组 
  34.     } else { 
  35.         $result[] = [ 
  36.             'topclassid' => $top['classid'], 
  37.             'topclassname' => $top['classname'], 
  38.             'topmid' => $class_r[$top['classid']]['modid'], 
  39.             'topclasspagekey' => $top['classpagekey'], 
  40.             'topintro' => $top['intro'], 
  41.             'sonclassid' => [], 
  42.             'sonclassname' => [], 
  43.             'sonclasspath' => [], 
  44.             'sonintro' => [], 
  45.             'sonmid' => [] 
  46.         ]; 
  47.     } 
  48. $output = [ 
  49.     'code' => 1, 
  50.     'list' => $result, 
  51. ]; 
  52. // 输出json数据 
  53. $api->json($output); 

【审核人:站长】

收藏   加好友   生成海报   分享
点赞(0)
打赏
Tags: CMS 帝国CMS 帝国

发布者资料

热门文章

技术文摘

查看更多技术文摘
首页
栏目
搜索
会员
投稿