Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

哭求更佳解决方案(急)

[复制链接]
kutulu 发表于 2008-10-22 14:05:02 | 显示全部楼层 |阅读模式
本帖最后由 kutulu 于 2008-10-22 14:12 编辑


环境为SS6.0+DISCUZ6.1
问题描述:
现需要在SS的论坛频道内,获取论坛中各个板块的信息,以group为单位,即一个group下面的所有板块放在一个分区内,模板修改目标代码部分为
  1. <div class="blockcategorylist block3col">
  2. <!--各板块最新列表-->
  3. <!--{loop $_SBLOCK['forumarr'] $ckey $cat}-->
  4. <!--{eval $ctime=3800+30*$ckey;}-->
  5. <!--{block name="bbsthread" parameter="fid/$cat[fid]/order/dateline DESC/limit/0,10/cachetime/$ctime/subjectlen/40/subjectdot/1/cachename/threadlist/tpl/data"}-->
  6. <div class="blockcategory" style="width: 256px;">
  7. <h3>
  8. <a href="#action/forumdisplay/fid/$cat[fid]#" class="more">更多</a>
  9. <strong><a href="#action/forumdisplay/fid/$cat[fid]#">$cat[name]</a></strong>
  10. </h3>
  11. <ul class="msgtitlelist">
  12. <!--{loop $_SBLOCK['threadlist'] $value}-->
  13. <li><cite>#date("m-d", $value["dateline"])# </cite><a href="$value[url]">$value[subject]</a></li>
  14. <!--{/loop}-->
  15. </ul>
  16. <!--p class="catecommend"><a href="javascript:;">热点</a></p-->
  17. </div>
  18. <!--{/loop}-->
  19. </div>
复制代码
实现方法一:
这个方法比较笨,去掉外层循环,直接写死了group的名称,然后在group下面对应的fid取得论坛板块信息,缺点就是一旦在SS里面写死了,今后DISCUZ再针对论坛板块调整的话,SS页面也需要跟着调整,维护工作量太大,代码如下:
  1. <div class="blockcategorylist block3col">
  2. <!--各板块最新列表-->

  3. <!--{eval $ctime=3800+30*$ckey;}-->
  4. <!--{block name="bbsthread" parameter="fid/4,5,6/order/dateline DESC/limit/0,10/cachetime/$ctime/subjectlen/40/subjectdot/1/cachename/threadlist/tpl/data"}-->
  5. <div class="blockcategory" style="width: 256px;">
  6. <h3>
  7. <a href="http://localhost:8080/Discuz/upload/index.php?gid=3" class="more">板块1</a>

  8. </h3>
  9. <ul class="msgtitlelist">
  10. <!--{loop $_SBLOCK['threadlist'] $value}-->
  11. <li><cite>#date("m-d", $value["dateline"])# </cite><a href="$value[url]">$value[subject]</a></li>
  12. <!--{/loop}-->
  13. </ul>
  14. <!--p class="catecommend"><a href="javascript:;">热点</a></p-->
  15. </div>

  16. </div>
复制代码
实现方法二:
抛弃ss提供的模板,手写SQL语句,由于MYSQL限制,无法创建嵌套SQL的视图,直接语句的话,无法根据循环变量取得具体group下面板块的文章更新信息,SQL语句如下:
  1. select  d.fid ,c.fid as gfid,d.tid,c.name,d.subject,d.author,d.dateline from cdb_forums c,
  2. (SELECT b.fup,b.fid,a.subject,a.author,a.dateline,a.tid FROM cdb_threads a ,cdb_forums b
  3. where a.fid=b.fid) d
  4. where c.fid=d.fup
  5. order by d.dateline desc
  6. limit 0,10;
复制代码

哭求各位大大,有更佳解决方案没有,还请不吝赐教
回复

使用道具 举报

 楼主| kutulu 发表于 2008-10-22 15:21:22 | 显示全部楼层
顶上去......在线等
回复

使用道具 举报

cr180 发表于 2008-10-22 19:40:14 | 显示全部楼层
250997329   加了看看
回复

使用道具 举报

 楼主| kutulu 发表于 2008-10-22 22:32:33 | 显示全部楼层
汗,伤心了,一点建议没有么

-----

楼上说的是啥,QQ号么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-16 12:15 , Processed in 0.098810 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表