限制較低等級的會員不能釋出帶連結的帖子 (如:新手上路等級的會員不能發),也就是停用 Discuz! 程式碼中的
[url]...[/url] 標籤。出於對論壇 SEO
的考慮,同時也為了更好地抑制 『垃圾』 帖子對論壇的影響。
由於 [url]
是論壇內建的 Discuz! 程式碼,可以禁止某個等級的會員或某個版塊不能使用 Discuz! 程式碼,但同時會禁止掉其他一些有用的部分,如 [img]
等。
從 原理上講,只要判斷該使用者的等級為新手上路,在釋出、編輯、回覆帖子時將 [url]
標籤全部過濾掉就能很好地達到目的。同時,以前已經發布的帶連結的帖子只要在顯示之前根據當前會員等級判斷是否過濾掉連結即可 (實際上應該判斷髮帖的會員
的等級來確定是否應該過濾連結,沒有追求這麼完美,也沒必要) 。下面是操作步驟。
限制遊客和新手上路等級會員釋出帶連結的帖子
開啟論壇根目錄 post.php 檔案,查詢:
以下為引用的內容:
$message = isset($message) ? censor(trim($message)) : '';
在下面新增程式碼:
以下為引用的內容:
- //Fufu_if groupid==10 or guest not support: [url]...[/url]
- if((intval($groupid) == 10 || intval($groupid) == 7) && strpos($message, '[/url]') !== FALSE) {
- $message = preg_replace("/[url(=((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|ed2k|thunder|synacast){1}://|www.)([^["']+?))?](.+?)[/url]/ies", '', $message);
- }
- //Fufu_end
作用是判斷當前使用者等級是否為新手上路 (10) 或遊客 (7),並且在帖子內容中包含 [/url] 標籤,那麼就替換
[url]...[/url] 內容為空。
禁止遊客及新手上路等級會員瀏覽包含連結的舊帖
開啟論壇目錄 /include/discuzcode.func.php 檔案,查詢:
以下為引用的內容:
function parseurl($url, $text) {
在下面新增:
以下為引用的內容:
- //Fufu_if groupid==10 or guest not support: [url]...[/url]
- global $groupid;
- if(intval($groupid) == 10 || intval($groupid) == 7) {
- return '';
- }
- //Fufu_end
作用是讓新進的會員和遊客看到論壇相對整潔,為搜尋引擎遮蔽帖子中的連結。
我是在 Discuz! 7 中修改的,其他版本作參考,修改前備份原檔案。