這篇文章, 主要是提醒論壇已經升級到 2.0.18 者,
若要安裝 attach 2.3.14 時, 需要注意修正的地方.
1. 關於資料庫的更新
當您執行 mod_table_inst.php 可能會出現找不到資料庫的錯誤訊息\r
以下的修改, 提供您參考:
#
#-----[ OPEN ]-----
# ps. 此檔在外掛裡頭
install/mod_table_inst.php
#
#-----[ FIND ]-----
#
代碼: 選擇全部
include($phpbb_root_path.'includes/db.'.$phpEx);
#
#-----[ REPLACE WITH ]-----
#
代碼: 選擇全部
include_once($phpbb_root_path.'includes/db.'.$phpEx);
#
#-----[ SAVE & CLOSE ]-----
#
http://phpbb-tw.net/phpbb/viewtopic.php?p=216704#216704
2. 關於 privmsg.php 的修改
原作者在 \premodified_files\ (已經修改好的檔案) 裡頭是 OK 的;
但是在 \docs\install.txt (安裝說明) 裡頭仍舊是錯誤的.
以下是該安裝說明的( 關於 privmsg.php 的修改) 部份擷取:
代碼: 選擇全部
#
#-----[ FIND ]---------------------------------------------
# around line 742
unset($delete_type);
}
#
#-----[ AFTER, ADD ]---------------------------------------
# the Line have to be added AFTER the closing brace
$attachment_mod['pm']->delete_all_pm_attachments($mark_list);
當您論壇升級到 2.0.17 的時候這裡的程式碼已經有異\r
以下是 phpBB 2.0.16 to phpBB 2.0.17 Code Changes( 關於 privmsg.php 的修改) 部份擷取:
代碼: 選擇全部
#
#-----[ OPEN ]---------------------------------------------
#
privmsg.php
#
#-----[ FIND ]---------------------------------------------
# Line 701
if ( $delete_all )
{
switch($folder)
{
case 'inbox':
$delete_type = "privmsgs_to_userid = " . $userdata['user_id'] . " AND (
privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
case 'outbox':
$delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
case 'sentbox':
$delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND privmsgs_type = " . PRIVMSGS_SENT_MAIL;
break;
case 'savebox':
$delete_type = "( ( privmsgs_from_userid = " . $userdata['user_id'] . "
AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " )
OR ( privmsgs_to_userid = " . $userdata['user_id'] . "
AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) )";
break;
}
$sql = "SELECT privmsgs_id
FROM " . PRIVMSGS_TABLE . "
WHERE $delete_type";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain id list to delete all messages', '', __LINE__, __FILE__, $sql);
}
while ( $row = $db->sql_fetchrow($result) )
{
$mark_list[] = $row['privmsgs_id'];
}
unset($delete_type);
}
#
#-----[ REPLACE WITH ]---------------------------------------------
#
$delete_sql_id = '';
if (!$delete_all)
{
for ($i = 0; $i < count($mark_list); $i++)
{
$delete_sql_id .= (($delete_sql_id != '') ? ', ' : '') . intval($mark_list[$i]);
}
$delete_sql_id = "AND privmsgs_id IN ($delete_sql_id)";
}
switch($folder)
{
case 'inbox':
$delete_type = "privmsgs_to_userid = " . $userdata['user_id'] . " AND (
privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
case 'outbox':
$delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
case 'sentbox':
$delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND privmsgs_type = " . PRIVMSGS_SENT_MAIL;
break;
case 'savebox':
$delete_type = "( ( privmsgs_from_userid = " . $userdata['user_id'] . "
AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " )
OR ( privmsgs_to_userid = " . $userdata['user_id'] . "
AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) )";
break;
}
$sql = "SELECT privmsgs_id
FROM " . PRIVMSGS_TABLE . "
WHERE $delete_type $delete_sql_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain id list to delete messages', '', __LINE__, __FILE__, $sql);
}
$mark_list = array();
while ( $row = $db->sql_fetchrow($result) )
{
$mark_list[] = $row['privmsgs_id'];
}\r
unset($delete_type);
也就是說, 如果您的論壇是 2.0.17 以上的話, 修改 privmsg.php 時, 將無法找到相關的位置代碼: 選擇全部
unset($delete_type);
}
此時, 您所要找的相關位置, 變更如下:代碼: 選擇全部
unset($delete_type);