1 頁 (共 1 頁)

[問題]關於TOP5限制版面的問題(以解決)

發表於 : 2006-03-24 23:27
紅蓮默示錄
問題外掛:TOP5 for Integrated Toplist
參考連結:TOP5 for Integrated Toplist
使用版本:phpBB 2.0.19
網站位置:http://md.ntit.edu.tw/phpbbmd
狀況描述:請各位先看這張圖

圖檔

目前我想做的是讓TOP5能不顯示一些特定的版面

參考了這篇文章後進行修改出現了圖片中的錯誤

由於在下對SQL的部份並不了解,希望能有大大幫忙解題


備註:
我進行更改的TOP5原始碼在這,這是目前正常使用的(沒更改)

發表於 : 2006-03-25 01:29
bu
(汗...) 先在這建議你一下用 Integrated Toplist 1.0.3
(沒什麼差,只是這樣,才能正名)

代碼: 選擇全部

<?php
/***************************************************************************
 *                                toplist.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 * MOD modified by brentsu, MOD by bu, based on OOHOO's ADV-TOP5
 *
***************************************************************************/
?>
找到

代碼: 選擇全部

// query
$sql = "SELECT topic_id, topic_title, topic_poster, topic_views, topic_replies, topic_last_post_id, f.forum_id, forum_name
FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f
WHERE t.forum_id = f.forum_id
AND topic_moved_id = '0'
$auth_forums_top5
ORDER BY $sortby DESC LIMIT 0, $MAX_TOPICS";

代碼: 選擇全部

AND topic_moved_id = '0'
$auth_forums_top5
中間放入一句


AND f.forum_id != '(例如1)' 這句就是你想要不給人看的版面

會像

代碼: 選擇全部

AND topic_moved_id = '0'
AND f.forum_id != '(例如1)'
$auth_forums_top5
有二個就

代碼: 選擇全部

AND topic_moved_id = '0'
AND f.forum_id != '(例如1)'
AND f.forum_id != '(例如2)'
$auth_forums_top5
:mrgreen:

發表於 : 2006-03-25 10:16
紅蓮默示錄
bu 寫:(汗...) 先在這建議你一下用 Integrated Toplist 1.0.3
(沒什麼差,只是這樣,才能正名)

代碼: 選擇全部

<?php
/***************************************************************************
 *                                toplist.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 * MOD modified by brentsu, MOD by bu, based on OOHOO's ADV-TOP5
 *
***************************************************************************/
?>
找到

代碼: 選擇全部

// query
$sql = "SELECT topic_id, topic_title, topic_poster, topic_views, topic_replies, topic_last_post_id, f.forum_id, forum_name
FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f
WHERE t.forum_id = f.forum_id
AND topic_moved_id = '0'
$auth_forums_top5
ORDER BY $sortby DESC LIMIT 0, $MAX_TOPICS";

代碼: 選擇全部

AND topic_moved_id = '0'
$auth_forums_top5
中間放入一句


AND f.forum_id != '(例如1)' 這句就是你想要不給人看的版面

會像

代碼: 選擇全部

AND topic_moved_id = '0'
AND f.forum_id != '(例如1)'
$auth_forums_top5
有二個就

代碼: 選擇全部

AND topic_moved_id = '0'
AND f.forum_id != '(例如1)'
AND f.forum_id != '(例如2)'
$auth_forums_top5
:mrgreen:
已經照上面的方式修改了,不會出現錯誤訊息,但是版面無法隱藏

依然會留在那邊,請大大在幫忙解決一下@_@"

發表於 : 2006-03-25 12:36
心靈捕手
To 紅蓮默示錄:

建議您:
貼出修改後的該段程式碼.

發表於 : 2006-03-25 12:47
紅蓮默示錄
心靈捕手 寫:To 紅蓮默示錄:

建議您:
貼出修改後的該段程式碼.
// query
$sql = "SELECT topic_id, topic_title, topic_poster, topic_views, topic_replies, topic_last_post_id, f.forum_id, forum_name
FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f
WHERE t.forum_id = f.forum_id
AND topic_moved_id = '0'
AND f.forum_id != '+ 管理員討論專區'
$auth_forums_top5
ORDER BY $sortby DESC LIMIT 0, $MAX_TOPICS";
真抱歉,我沒想到要貼出來Orz

發表於 : 2006-03-25 14:29
心靈捕手
紅蓮默示錄 寫:
心靈捕手 寫:To 紅蓮默示錄:

建議您:
貼出修改後的該段程式碼.
// query
$sql = "SELECT topic_id, topic_title, topic_poster, topic_views, topic_replies, topic_last_post_id, f.forum_id, forum_name
FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f
WHERE t.forum_id = f.forum_id
AND topic_moved_id = '0'
AND f.forum_id != '+ 管理員討論專區'
$auth_forums_top5
ORDER BY $sortby DESC LIMIT 0, $MAX_TOPICS";
真抱歉,我沒想到要貼出來Orz
您的語法有誤!
'+ 管理員討論專區' 是指 'forum_name', 也就是 '版面名稱'.

我並不知道您的論壇 '+ 管理員討論專區' 的 'forum_id' 是多少?

以您的論壇, 假使要將其他版面設定為例外的話,
'好站介紹' 的 'forum_id' = '27'
'優良讀物' 的 'forum_id' = '39'
'意見反應' 的 'forum_id' = '29'
參考上面 bu 大大回文, 可以試試下列語法:

代碼: 選擇全部

// query 
$sql = "SELECT topic_id, topic_title, topic_poster, topic_views, topic_replies, topic_last_post_id, f.forum_id, forum_name 
FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f 
WHERE t.forum_id = f.forum_id 
AND topic_moved_id = '0' 
AND f.forum_id != '27'
AND f.forum_id != '39'
AND f.forum_id != '29'
$auth_forums_top5 
ORDER BY $sortby DESC LIMIT 0, $MAX_TOPICS";
另外, 您也可以試試以下的語法:
// 設定例外版面 id (以逗號分隔)
$except_forum_id = '27,39,29';

// query
$sql = "SELECT topic_id, topic_title, topic_poster, topic_views, topic_replies, topic_last_post_id, f.forum_id, forum_name
FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f
WHERE t.forum_id = f.forum_id
AND topic_moved_id = '0'
AND t.forum_id NOT IN (" . $except_forum_id . ")
$auth_forums_top5
ORDER BY $sortby DESC LIMIT 0, $MAX_TOPICS";

發表於 : 2006-03-25 21:16
紅蓮默示錄
感謝心靈捕手大大的幫忙,問題已經解決了

原來只是我會錯意了 :oops: