如果您希望論壇中的主題, 超過一定的時間沒有回覆時, 會自動鎖定, 那麼您可以試試這個修改方法.
方法:
--開啟--
posting.php
--找到--
代碼: 選擇全部
$current_time = time();
代碼: 選擇全部
//自動鎖定開始
//回覆文章時, 檢查主題的最後發表文章之時間 (管理員及版主不受影響)
if (($mode == 'reply' || $mode == 'quote') && !$auth->acl_gets('a_', 'm_') && !$auth->acl_getf_global('m_'))
{
//選取最後發表文章之時間, 主題
$sql = 'SELECT topic_last_post_time, topic_title
FROM ' . TOPICS_TABLE . '
WHERE topic_id = ' . $topic_id;
$result = $db->sql_query_limit($sql, 1);
if ($row = $db->sql_fetchrow($result))
{
$topic_age = $row['topic_last_post_time'];
$topic_title = $row['topic_title'];
}
$db->sql_freeresult($result);
//假如最後發表文章之時間超過 1 天, 那麼自動鎖定
if ((time() - $topic_age) > 86400)
{
//鎖定主題, 並給予錯誤警告
$sql = 'UPDATE ' . TOPICS_TABLE . "
SET topic_status = 1
WHERE topic_id = $topic_id";
$db->sql_query($sql);
add_log('mod', $forum_id, $topic_id, 'LOG_' . 'LOCK', $topic_title);
trigger_error('抱歉! 這個主題因為超過 1 天沒有人回覆, 所以已經被鎖定.');
}
}
//自動鎖定結束
P.S.
檔案必須儲存為 UTF-8 (未含 BOM) 格式.
後記:
1. 如果只要指定某些版面有此自動鎖定主題的功能, 那麼可以增加一些代碼, 包住上頭所新增者:
代碼: 選擇全部
//只有版面 ID = 5, 55 以及 555 有自動鎖定主題功能
$excluded_forum_ids = array(5,55,555);
if (in_array($forum_id, $excluded_forum_ids))
{
//自動鎖定開始
(以下省略)
//自動鎖定結束
}
請將版面 ID (5,55,555) 取代成您所要指定者, 以半形逗點分隔.
2. 您可自行依需求, 修改最後發表文章之時間超過的天數, 如下:
- 1 天 = 86400 (秒)
- 7 天 = 86400*7 = 604800 (秒)
- 30 天 = 86400*30 = 2592000 (秒)
記得一併修改 trigger_error() 當中的說明文字.
--
參考資料:
http://www.phpbb.com/community/viewtopi ... 2&t=845135