第 1 頁 (共 1 頁)
發現一個2.0.18 在 posting.php 的 bug
發表於 : 2005-12-21 13:12
由 bluejeff
不清楚有沒有人和我一樣狀況, 剛剛去phpbb看了一下, 好像沒有人回報這個問題.
裝完2.0.18之後, 發現無法建立投票\r
正確的說應該是無法把已經打好的投票給keep在同一個page
經過測試之後, 發現2.0.18的更新說明是錯誤的. 在posting.php, 原本的2.0.18是:
Find:
代碼: 選擇全部
$refresh = $preview ||
After, Add:
代碼: 選擇全部
$orig_word = $replacement_word = array();
這個是錯誤的, 原本的那一句的refresh功能就會被切掉了.
我想應該是:
Find:
代碼: 選擇全部
$refresh = $preview || $poll_add || $poll_edit || $poll_delete;
After, Add:
代碼: 選擇全部
$orig_word = $replacement_word = array();
這樣子就解決問題了

希望我修的是正確的.
發表於 : 2005-12-21 13:17
由 小竹子
發表於 : 2005-12-21 13:34
由 bluejeff
因為原來的程式碼是:
代碼: 選擇全部
$refresh = $preview || $poll_add || $poll_edit || $poll_delete;
如果依照原本的方法修改的話會變成:
代碼: 選擇全部
$refresh = $preview || $orig_word = $replacement_word = array();
$poll_add || $poll_edit || $poll_delete;
那樣子的話refresh就會被切斷, 當進行投票的時候會變成無法增加選項(因為無法更新)
基本上是2.0.18的小錯誤, 只要注意一下就OK. 小竹子大概是下意識的修對了

只要是常碰程式的人都應該可以避免這個小bug.
依照上面我講的修法修改的話應該是會變成:
代碼: 選擇全部
$refresh = $preview || $poll_add || $poll_edit || $poll_delete;
$orig_word = $replacement_word = array();
也就是說, 要增加那句的那句應該是在原本句的之後, 而不是在中間把原本句給切了
發表於 : 2005-12-21 13:40
由 小竹子
竹貓因為沒安裝外掛,通常更新都是直接覆蓋檔案進行升級,所以比較沒有修改上的問題

發表於 : 2005-12-21 13:45
由 bluejeff
阿, 真好, 那樣子就不會錯了.
有裝外掛就只能一句一句慢慢改的說, 唉~
這個小bug小竹子可以去回報給phpbb.com的管理者嗎?
發表於 : 2005-12-21 14:05
由 小竹子
我先檢查一下,因為當時 2.0.18 有釋出過兩次,不知道是不是之前有修正過!
發表於 : 2005-12-21 14:13
由 動機不明
這個其實算是作者蠻偷懶的寫法...
可能是怕有些人安裝過其他外掛所以該行會有變更,因此才用開頭一段來代表...
前幾天我安裝
生日外掛的時候也發現一樣的寫法,沒有一點修改經驗的人看了一定會狀況連連的 ^^"
例如
代碼: 選擇全部
#
#-----[ FIND ]------------------------------------------------
#
'OCCUPATION' =>
'INTERESTS' =>
#
#-----[ AFTER, ADD ]------------------------------------------
#
// Start add - Birthday MOD
'S_BIRTHDAY' => $s_birthday,
'BIRTHDAY_REQUIRED' => ($board_config['birthday_required']) ? '*' : '',
// End add - Birthday MOD
#
#-----[ FIND ]------------------------------------------------
#
'L_INTERESTS' =>
#
#-----[ AFTER, ADD ]------------------------------------------
#
// Start add - Birthday MOD
'L_BIRTHDAY' => $lang['Birthday'],
// End add - Birthday MOD
發表於 : 2005-12-21 20:06
由 Mac
bluejeff 寫:因為原來的程式碼是:
代碼: 選擇全部
$refresh = $preview || $poll_add || $poll_edit || $poll_delete;
如果依照原本的方法修改的話會變成:
代碼: 選擇全部
$refresh = $preview || $orig_word = $replacement_word = array();
$poll_add || $poll_edit || $poll_delete;
那樣子的話refresh就會被切斷, 當進行投票的時候會變成無法增加選項(因為無法更新)
基本上是2.0.18的小錯誤, 只要注意一下就OK. 小竹子大概是下意識的修對了

只要是常碰程式的人都應該可以避免這個小bug.
依照上面我講的修法修改的話應該是會變成:
代碼: 選擇全部
$refresh = $preview || $poll_add || $poll_edit || $poll_delete;
$orig_word = $replacement_word = array();
也就是說, 要增加那句的那句應該是在原本句的之後, 而不是在中間把原本句給切了
你誤會了 AFTER, ADD 的意思了。AFTER, ADD 和 IN-LINE AFTER, ADD 是不一樣的指令\r
~Mac
發表於 : 2005-12-21 21:12
由 過山雲
請問
那這樣到底有沒有問題呢?
謝謝。
發表於 : 2005-12-21 21:34
由 Mac
過山雲 寫:請問
那這樣到底有沒有問題呢?
謝謝。
關於外掛指令的寫法,目前官方的外掛小組是較為建議使用所謂的 Partial Match(部分比對),因為這樣子寫,在碰到已因為安裝外掛而修改的程式碼時,比較能有較少的衝突。
以原先提出來的程式碼為例,不管 "$refresh = $preview ||" 之後做了何種修正,都可以在找到那一行之後(AFTER, ADD = 之下)加上新的修正。
~Mac
發表於 : 2005-12-22 11:04
由 DL
要是你用asymod來裝的話,你會發覺安裝生日外掛及2.0.18的更新都沒有問題。