第 1 頁 (共 1 頁)
[分享] 升級 phpbb 2.0.18 後, 關於外掛 Custom mass PM 1.4.7 的因應
發表於 : 2005-11-03 15:19
由 心靈捕手
今天我的論壇有會員反應:
使用私訊時會出現下列訊息:
Warning: Wrong parameter count for usort() in d:\appserv\www\phpbb2\privmsg.php on line 1243
http://wang5555.dnsfor.me/phpbb2/viewtopic. ... 2385#32385
\r
經我測試的結果:
除了這個訊息之外, 還會出現下列系統訊息:
很抱歉! 這個會員名稱並不存在
我猜想:
這是因為我有加裝外掛
Custom mass PM 1.4.7 的關係.
目前已經修正!
以下的修改, 提供給也有安裝這個外掛, 且成功升級 phpbb 2.0.18 的人參考:
#
#-----[ OPEN ]-----
#
privmsg.php
#
#-----[ FIND ]-----
#
代碼: 選擇全部
if (!($to_userdata = $db->sql_fetchrow($result)))
{
$error = TRUE;
$error_msg = $lang['No_such_user'];
}
#
#-----[ REPLACE WITH ]-----
#
代碼: 選擇全部
/*if (!($to_userdata = $db->sql_fetchrow($result)))
{
$error = TRUE;
$error_msg = $lang['No_such_user'];
}*/
發表於 : 2005-11-03 18:20
由 flyinghail
安裝過Custom mass PM的話\r
代碼: 選擇全部
$to_userdata = $db->sql_fetchrow($result);
這句應該已經不存在了
升級的時候修改應該是\r
代碼: 選擇全部
$to_users = $db->sql_fetchrowset($result2);
替換為\r
代碼: 選擇全部
if (!($to_users = $db->sql_fetchrowset($result2);))
{
$error = TRUE;
$error_msg = $lang['No_such_user'];
}
不過感覺這句不替換也沒有關係...
發表於 : 2005-11-05 08:15
由 心靈捕手
To flyinghail:
我之所以會將這一段語法註解
主要是認為:
當我們安裝外掛
Custom mass PM 1.4.7 之後,
已經加入判斷有無該使用者的語法了.
以下是外掛
Custom mass PM 1.4.7 關於 privmsg.php 相關與法部分擷取
代碼: 選擇全部
#
#-----[ FIND ]------------------------------------------------
#
if ( !($result = $db->sql_query($sql)) )
{
$error = TRUE;
$error_msg = $lang['No_such_user'];
}
$to_userdata = $db->sql_fetchrow($result);
}
else
{
#
#-----[ REPLACE WITH ]----------------------------------------
#
// Start replacement - Custom mass PM MOD
if( !($result2 = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain users PM information', '', __LINE__, __FILE__, $sql);
}
$to_users = $db->sql_fetchrowset($result2);
$n=0;
while ($to_username_array[$n] && !$error)
{
if (strcasecmp($to_users[$n]['username'], str_replace("\'", "'",$to_username_array[$n])))
{
$error = TRUE;
$error_msg .= $lang['No_such_user']." '".str_replace("\'", "'", $to_username_array[$n]);
}
$n++;
}
}
else
{
// End replacement - Custom mass PM MOD
而當您 2.0.17 升級 2.0.18 過程中, 關於 privmsg.php 相關與法部分擷取
代碼: 選擇全部
#
#-----[ FIND ]---------------------------------------------
#
$to_userdata = $db->sql_fetchrow($result);
#
#-----[ REPLACE WITH ]---------------------------------------------
#
if (!($to_userdata = $db->sql_fetchrow($result)))
{
$error = TRUE;
$error_msg = $lang['No_such_user'];
}
也就是說, 假如有人是使用 2.0.18 版, 要安裝外掛
Custom mass PM 1.4.7
那麼他可能會找不到\r
代碼: 選擇全部
$to_userdata = $db->sql_fetchrow($result);
而原本要取代的地方, 則是要變成這樣:
代碼: 選擇全部
#
#-----[ FIND ]------------------------------------------------
#
if ( !($result = $db->sql_query($sql)) )
{
$error = TRUE;
$error_msg = $lang['No_such_user'];
}
if (!($to_userdata = $db->sql_fetchrow($result)))
{
$error = TRUE;
$error_msg = $lang['No_such_user'];
}
}
else
{
#
#-----[ REPLACE WITH ]----------------------------------------
#
// Start replacement - Custom mass PM MOD
if( !($result2 = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain users PM information', '', __LINE__, __FILE__, $sql);
}
$to_users = $db->sql_fetchrowset($result2);
$n=0;
while ($to_username_array[$n] && !$error)
{
if (strcasecmp($to_users[$n]['username'], str_replace("\'", "'",$to_username_array[$n])))
{
$error = TRUE;
$error_msg .= $lang['No_such_user']." '".str_replace("\'", "'", $to_username_array[$n]);
}
$n++;
}
}
else
{
// End replacement - Custom mass PM MOD
發表於 : 2005-11-05 12:27
由 flyinghail
哦\r
你的意思是先升級到2.0.18再安裝MOD...
我的意思是已經安裝了這個MOD的phpBB升級到2.0.18這樣
發表於 : 2005-11-05 17:55
由 心靈捕手
flyinghail 寫:哦\r
你的意思是先升級到2.0.18再安裝MOD...
我的意思是已經安裝了這個MOD的phpBB升級到2.0.18這樣
呵! 呵! 當初升級 2.0.18 時, 我的確是找不到\r
代碼: 選擇全部
$to_userdata = $db->sql_fetchrow($result);
後來參考原版 2.0.18 的 privmsg.php 之後
找到相關位置, 直接加入需要取代成的語法
代碼: 選擇全部
if (!($to_userdata = $db->sql_fetchrow($result)))
{
$error = TRUE;
$error_msg = $lang['No_such_user'];
}
所以才會凸搥.
我的看法跟您較有差異的地方, 只是我個人以為:
在升級過程中, 上面需要取代成的這段語法, 是可以省略的.
發表於 : 2005-11-05 21:27
由 flyinghail
所以我也說了
不過感覺這句不替換也沒有關係...
呵呵,反正加上只是更嚴密罷了,改不改倒是無所謂
發表於 : 2005-12-24 17:23
由 過山雲
問題:
會員註冊時有出現這個欄位
大量 PM 通知:
email 通知 PM 接收者, 由您所屬的群組發送
O是 O 否 O 拒收大量 PM
<---這個欄位的預設值應如何調整呢?
謝謝了!
發表於 : 2005-12-25 22:05
由 心靈捕手
過山雲 寫:問題:
會員註冊時有出現這個欄位
大量 PM 通知:
email 通知 PM 接收者, 由您所屬的群組發送
O是 O 否 O 拒收大量 PM
<---這個欄位的預設值應如何調整呢?
謝謝了!
請問您: 當會員註冊時, 出現的預設值為何呢?
發表於 : 2005-12-25 22:16
由 過山雲
目前會員註冊時:
預設值是:否\r
看了安裝說明文件\r
沒有說明要怎麼調整預設值\r
不好意思
可能這問題之前有會員問過了
小弟搜尋的功能可能還不到家吧~
也謝謝某些熱心的會員\r
可以說是「不厭其煩」(也有人說是縱容,或降低論壇的品質)的解決問題
但在需要幫助的會員眼中
您們真是偉大
發表於 : 2005-12-25 22:22
由 心靈捕手
過山雲 寫:目前會員註冊時:
預設值是:否\r
看了安裝說明文件\r
沒有說明要怎麼調整預設值\r
不好意思
可能這問題之前有會員問過了
小弟搜尋的功能可能還不到家吧~
也謝謝某些熱心的會員\r
可以說是「不厭其煩」(也有人說是縱容,或降低論壇的品質)的解決問題
但在需要幫助的會員眼中
您們真是偉大
試試這個修改.
#
#-----[ OPEN ]-----
#
includes/usercp_register.php
#
#-----[ FIND ]-----
#
代碼: 選擇全部
// Start add - Custom mass PM MOD
$allow_mass_pm = ( isset($HTTP_POST_VARS['allow_mass_pm']) ) ? intval ($HTTP_POST_VARS['allow_mass_pm']) : 2;
// End add - Custom mass PM MOD
#
#-----[ REPLACE WITH ]-----
# 調整預設為" 是"
代碼: 選擇全部
// Start add - Custom mass PM MOD
$allow_mass_pm = ( isset($HTTP_POST_VARS['allow_mass_pm']) ) ? intval ($HTTP_POST_VARS['allow_mass_pm']) : 4;
// End add - Custom mass PM MOD
#
#-----[ OR REPLACE WITH ]-----
# 或者, 調整預設為" 拒收大量 PM"
代碼: 選擇全部
// Start add - Custom mass PM MOD
$allow_mass_pm = ( isset($HTTP_POST_VARS['allow_mass_pm']) ) ? intval ($HTTP_POST_VARS['allow_mass_pm']) : 0;
// End add - Custom mass PM MOD
發表於 : 2005-12-26 18:10
由 過山雲