19 12
发新话题
打印

在父论坛显示子论坛的帖子,麻烦这边的高手完善

在父论坛显示子论坛的帖子,麻烦这边的高手完善

这个插件的问题是:
父论坛不能完全显示子论坛的帖子,只能显示最新的一部分
假如父论坛只有1个帖子,子论坛有50个,那么父论坛不能分页

不知道问题出在哪里


转自:http://www.discuz.net/thread-353034-1-1.html

转载请保留出处(discuz.net)及作者(本人)
下面的方法是 5.0 的, 4.x 的请大家参照 5.0 的方法自己改.

安装方法:

1. 打开 forumdisplay.php
查找:
复制内容到剪贴板
代码:
if($subexists && $forum['forumcolumns']) {
在上面添加:
复制内容到剪贴板
代码:
// 父板块显示子版块内容
$subfid = $subname = array();
if($subexists) {
foreach($sublist as $subinfo) {
  $subname[$subinfo['fid']] = $subinfo['name'];
  $subfid[] = $subinfo['fid'];
}
}
$fidarr = $fid.($subexists ? ','.implode(',', $subfid) : '');
再找:
复制内容到剪贴板
代码:
$query = $db->query("SELECT COUNT(*) FROM {$tablepre}threads WHERE fid='$fid' $filteradd AND displayorder>='0'";);
改成:
复制内容到剪贴板
代码:
// 父板块显示子版块
// 把 fid='$fid' 改成 fid IN ($fidarr)
$query = $db->query("SELECT COUNT(*) FROM {$tablepre}threads WHERE fid IN ($fidarr) $filteradd AND displayorder>='0'";);
再找(共2处, 都需要改):
复制内容到剪贴板
代码:
WHERE t.fid='$fid' $filteradd AND $displayorderadd
改成:
复制内容到剪贴板
代码:
WHERE t.fid IN ($fidarr) $filteradd AND $displayorderadd
2. 打开 forumdisplay.htm
查找:
复制内容到剪贴板
代码:
<!--{if $thread['readperm']}--> - [{lang readperm} <span class="bold">$thread[readperm]</span>]<!--{/if}-->
在上面添加:
复制内容到剪贴板
代码:
  <!-- 父论坛显示子论坛帖子 -->
  <!--{if ($thread['fid'] != $fid) && !$thread['displayorder']}--> - [{lang forum_subforums} <a href="forumdisplay.php?fid=$thread[fid]" class="bold">$subname[$thread[fid]]</a>]<!--{/if}-->
3. 安装完成.

截图如下:


TOP

简单写一个.未经测试.未测试请勿使用.
复制内容到剪贴板
代码:
$subexists = 0;
下面加上
复制内容到剪贴板
代码:
$fidarr = $fid;
复制内容到剪贴板
代码:
$sublist[] = $sub;
改为
复制内容到剪贴板
代码:
$sublist[$sub['fid']] = $sub;
$fidarr .= ', '.$sub['fid'];
复制内容到剪贴板
代码:
if(empty($filter)) {
        $threadcount = $forum['threads'];
} else {
        $query = $db->query("SELECT COUNT(*) FROM {$tablepre}threads WHERE fid='$fid' $filteradd AND displayorder>='0'");
        $threadcount = $db->result($query, 0);
}
改为
复制内容到剪贴板
代码:
//if(empty($filter)) {
        //$threadcount = $forum['threads'];
//} else {
        $query = $db->query("SELECT COUNT(*) FROM {$tablepre}threads WHERE fid IN ($fidarr) $filteradd AND displayorder>='0'");
        $threadcount = $db->result($query, 0);
//}
2个
复制内容到剪贴板
代码:
t.fid='$fid'
都改为
复制内容到剪贴板
代码:
t.fid IN ($fidarr)
forumdisplay.php
复制内容到剪贴板
代码:
<!--{if $thread['readperm']}--> - [{lang readperm} <span class="bold">$thread[readperm]</span>]<!--{/if}-->
下面加上
复制内容到剪贴板
代码:
<!--{if $thread['fid'] != $fid && !$thread['displayorder']}--> - [{lang forum_subforums} <a href="forumdisplay.php?fid=$thread[fid]" class="bold">$sublist[$thread['fid']]['name']</a>]<!--{/if}-->


本人乃老师的学生.
大家可以叫我学生.
My name is cnstudent.
I am cnteacher's student.
Winner never cheat.
Cheater never win.
欺骗的人永远不会成功。
成功的人永远不会欺骗。

TOP

回复 #2 Cnstudent 的帖子

本地测试通过,谢谢!!!
高手就是出手不凡~佩服

不过还是希望,模板能够显示子论坛

TOP

引用:
原帖由 amoshuang 于 2006-8-2 06:22 PM 发表。
本地测试通过,谢谢!!!
高手就是出手不凡~佩服

不过还是希望,模板能够显示子论坛
更新了一下.


本人乃老师的学生.
大家可以叫我学生.
My name is cnstudent.
I am cnteacher's student.
Winner never cheat.
Cheater never win.
欺骗的人永远不会成功。
成功的人永远不会欺骗。

TOP

forumdisplay.php应该是forumdisplay.htm

改了
仅显示
引用:
有哪个mm完成过精灵给的任务???  - [子论坛 ]    (  1 2 )

TOP

复制内容到剪贴板
代码:
$sublist[] = $sub;
改为
复制内容到剪贴板
代码:
$sublist[$sub['fid']] = $sub;
$fidarr .= ', '.$sub['fid'];
这步不能少.


本人乃老师的学生.
大家可以叫我学生.
My name is cnstudent.
I am cnteacher's student.
Winner never cheat.
Cheater never win.
欺骗的人永远不会成功。
成功的人永远不会欺骗。

TOP

回复 #6 Cnstudent 的帖子

OK
搞掂!
佩服+感谢

TOP

回复 #7 amoshuang 的帖子

可否转载到DZ?
可能会让原来的作者,那边的斑竹魔焰男孩,有点尴尬

TOP

应该不要紧吧,大家互相学习.


本人乃老师的学生.
大家可以叫我学生.
My name is cnstudent.
I am cnteacher's student.
Winner never cheat.
Cheater never win.
欺骗的人永远不会成功。
成功的人永远不会欺骗。

TOP

呵呵, 本来过几天打算修复下, 不过既然有人帮忙了我就不用浪费时间了

TOP

 19 12
发新话题