第 1 頁 (共 2 頁)
[ 已 解 決 ] [quote] 失 效
發表於 : 2006-04-08 10:27
由 kp3011
phpBB 資 料 請 見 簽 名 檔
( 這 篇 文 章 關 閉 了 BBCode 以 作 示 範 )
在 升 級 到 phpBB 2.0.20 前 quote 功 能 還 是 完 好 的 , 剛 升 級 到 2.0.20 之 後 , quote 功 能 不 能 用 了 :
例 如 我 輸 入 [quote="testing"]1[/quote] 他 就 完 整 的 輸 出 [quote="testing"]1[/quote] 到 我 的 文 章 內
我 到 資 料 庫 去 查 找 , 發 現 post_text 一 欄 的 內 容 是 [quote="testing"]1[/quote][b:3f8a03db7c]testing[/b:3f8a03db7c]
[b][/b] 的 那 部 份 可 以 正 常 顯 示 , 可 是 quote 還 是 出 現 文 字
我 試 過 上 載 原 裝 phpBB 2.0.20 的 includes/bbcode.php 不 過 情 況 還 是 一 樣 .
感 謝 幫 助 .
[color=red]** 解 決 辦 法 :
http://phpbb-tw.net/phpbb/viewtopic.php?p=233784#233784[/color]
發表於 : 2006-04-08 10:58
由 jwxinst
私人訊息的引言失效請看
http://www.phpbb-tw.net/phpbb/viewtopic ... 777#233777
看這裡試試看吧
修正板將由官方公佈
(修正參考資料, 私人訊息以外, function.php可以參考底下那篇, 不曉得能否解決
至於另一位官方Dev要求檢查的其實跟Mac大寫道的好像是相同
(所以我不用爆文章@@?....)
兩位大大辛苦了....
發表於 : 2006-04-08 11:02
由 Mac
我想 kp3011 遇到的問題跟這次少加上的程式碼無關,應該是少做了什麼或做錯了什麼
kp3011 你是用手動更新還是 EasyMOD?
如果是手動,你可已先檢查一下
includes/bbcode.php
includes/functions.php
includes/functions_post.php
~Mac
發表於 : 2006-04-08 11:13
由 jwxinst
哦, 其實我也看錯了一點
我只給了一半參考資料....
其中引言作者失效了, 如果根據這一篇官方討論, 在html語法關閉後 either是work, 不能引言的就做以下的修正....'
打開includes/functions_post.php
尋找:
代碼:
代碼: 選擇全部
$message = addslashes($message);
After, Add:
代碼:
代碼: 選擇全部
$message = str_replace('"', '\\"', $message);
如果是參考官方討論, 不曉得給否解決這個問題
不過看起來, 這個應該會可以work....
(今天實在太忙, 連升級也不能, 只能在官網裡待著......OZT)
我認為升級應該用手動比較好.....
不過Mac大說得也有道理
小弟的遇見是參考官方的幾個討論
所以還是檢查你修改時有沒有跟外掛相衝啦
還有有沒有修正不對?
發表於 : 2006-04-08 11:20
由 jwxinst
另外, 如果你是私人訊息的話
在用 Easymod升級, 請跟官方修正:
請打開 privmsg.php, 大約在 line 1505, 請
確定有以下的代碼
代碼:
代碼: 選擇全部
if ( !($privmsg = $db->sql_fetchrow($result)) )
{
redirect(append_sid("privmsg.$phpEx?folder=$folder", true));
}
$orig_word = $replacement_word = array();
obtain_word_list($orig_word, $replace_word);
$privmsg_subject = ( ( !preg_match('/^Re:/', $privmsg['privmsgs_subject']) ) ? 'Re: ' : '' ) . $privmsg['privmsgs_subject'];
$privmsg_subject = preg_replace($orig_word, $replacement_word, $privmsg_subject);
$to_username = $privmsg['username'];
$to_userid = $privmsg['user_id'];
if ( $mode == 'quote' )
請你檢查清楚, 是否全部都有
因為有人用 Easymod安裝後, 其中有幾段會不見
最好的方法是 Replace
發表於 : 2006-04-08 21:56
由 kp3011
jwxinst 寫:哦, 其實我也看錯了一點
我只給了一半參考資料....
其中引言作者失效了, 如果根據這一篇官方討論, 在html語法關閉後 either是work, 不能引言的就做以下的修正....'
打開includes/functions_post.php
尋找:
代碼:
代碼: 選擇全部
$message = addslashes($message);
After, Add:
代碼:
代碼: 選擇全部
$message = str_replace('"', '\\"', $message);
如果是參考官方討論, 不曉得給否解決這個問題
不過看起來, 這個應該會可以work....
(今天實在太忙, 連升級也不能, 只能在官網裡待著......OZT)
我認為升級應該用手動比較好.....
不過Mac大說得也有道理
小弟的遇見是參考官方的幾個討論
所以還是檢查你修改時有沒有跟外掛相衝啦
還有有沒有修正不對?
這 個 修 改 成 功 解 決 了 問 題 ! 萬 分 感 謝 jwxinst 和 Mac 大 大 的 幫 助
* 小 弟 是 手 動 更 新 的 , 可 是 再 查 找 Code Changes 一 檔 內
代碼: 選擇全部
$message = addslashes($message);
一 句 後 也 沒 有
代碼: 選擇全部
$message = str_replace('"', '\\"', $message);
一 句
發表於 : 2006-04-08 23:25
由 jwxinst
其實我的意思是說
代碼:
尋找
代碼: 選擇全部
$message = addslashes($message);
代碼: 選擇全部
下一行, 加入,
$message = str_replace('"', '\\"', $message);
當然, 現在code change files已經重新發表了吧?
應該不會有發生類似的事情...
發表於 : 2006-04-09 23:11
由 Mowd
我跟原PO的情形一樣,資料庫顯示的是[quote="testing"]1[/quote]
不過我是從2.0.18升級到19,然後再升到20的,在2.0.19就已經無法引言,2.0.20也是一樣,但是如果不引用作者名字的話就正常,
代碼: 選擇全部
$message = str_replace('"', '\\"', $message);
2.0.20的修改我也改了,但還是一樣,請問到底還有哪裡需要修正啊?
發表於 : 2006-04-09 23:59
由 jwxinst
To Mowd大,
我也有類似的問題
後來我先試用以上的方法不會出現有問題
但是會出現亂碼....
你加入的那一段本應是讓 bbcode重新....
但深入不看那個討論
如果從DB READ的話
會發現就算不做修正, 也一樣, 他都變成這樣子
就如官方的karlsemple建議:
目前 2.0.20仍然不夠成熟....還有些confirmed bugs....
如果那個修正也不成功(他用了...ok...), 就先等官方好啦....
@@不曉得官方什麼時候才發佈 fixed呢?
發表於 : 2006-04-10 00:02
由 jwxinst
再看多一次你的問題
你在2.0.19已經不能嗎?
那應該先在2.0.19把quote正常, 因為的修正只是針對2.0.20(>..<)
那就在 2.0.18→0.19的時候, 那麼先試試這個方法
代碼: 選擇全部
#
#----[ OPEN ]-----
#
includes/bbcode.php
#
#-----[ FIND ]-----
#
代碼:
$text = bbencode_first_pass_pda($text, $uid, '/\[quote=\\\\"(.*?)\\\\"\]/is', '[/quote]', '', false, '', "[quote:$uid=\\\"\\1\\\"]");
#
#-----[ REPLACE WITH ]-----
#
代碼:
$text = bbencode_first_pass_pda($text, $uid, '/\[quote=(\\\".*?\\\")\]/is', '[/quote]', '', false, '', "[quote:$uid=\\1]");
意思也就是...回復2.0.18的BBCODE功能.....
方法參考裝bbcode expand....
http://phpbb-tw.net/phpbb/viewtopic.php?p=231617#231617
發表於 : 2006-04-10 00:51
由 Mowd
我知道原因出在哪裡了,前天我從2.0.18升級到2.0.19時參考的是DL發表的Code Change,這篇文章在BBCode關於Quote部分的程式碼不知為何每個\都多出了一個反斜線\,所以出了問題。
現在我已經修改回來,同時也針對DL發表的文章作了修正,不曉得之前怎麼都沒有人回報過這個問題,還是...?
發表於 : 2006-04-11 03:51
由 jwxinst

原來是這樣子!
(我升級都是用官方的CODE CHANGED=_="....)
不曉得是什麼原因? (總有人看他做修正吧?)....
發表於 : 2006-04-20 07:47
由 Xilinx
Mowd 寫:我知道原因出在哪裡了,前天我從2.0.18升級到2.0.19時參考的是DL發表的Code Change,這篇文章在BBCode關於Quote部分的程式碼不知為何每個\都多出了一個反斜線\,所以出了問題。
現在我已經修改回來,同時也針對DL發表的文章作了修正,不曉得之前怎麼都沒有人回報過這個問題,還是...?
可否明說修改方式
發表於 : 2006-04-20 11:48
由 jwxinst
問題應該是這兩段
代碼: 選擇全部
$text = bbencode_first_pass_pda($text, $uid, '/\[quote=\\\\"(.*?)\\\\"\]/is', '[/quote]', '', false, '', "[quote:$uid=\\\"\\1\\\"]");
代碼: 選擇全部
if( preg_match('#\[quote=\\\\\"#si', $possible_start, $match) && !preg_match('#\[quote=\\\\\"(.*?)\\\\\"\]#si', $possible_start) )
{
// OK we are in a quote tag that probably contains a ] bracket.
// Grab a bit more of the string to hopefully get all of it..
if ($close_pos = strpos($text, '"]', $curr_pos + 14))
{
if (strpos(substr($text, $curr_pos + 14, $close_pos - ($curr_pos + 14)), '[quote') === false)
{
$possible_start = substr($text, $curr_pos, $close_pos - $curr_pos + 7);
ps:mowd大好像已經把以上的代碼修改過, 所以應該沒問題吧....
= ="...
發表於 : 2007-04-25 10:48
由 Fily
小弟的問題也是挺奇怪的 ><
在竹貓碼頭這拜讀了許多UTF8文章,實做後,也成功的將討論區轉成UTF8

著實感謝大家
但是就在討論區轉換後的當下,發現了引言回覆的問題,爬了文章,卻沒有發現與小弟遇到相同情況的文章 ><
問題是這樣的 ...
在小弟的討論區上某些文章引言會失敗,某些則是正常,進入資料庫查看後
發現到引言的BBcode後方會被加上一組亂數的代碼(在討論區觀看皆正常),且前後號碼是有對應的,這樣的引言是正常無誤的
原始碼
討論區觀看畫面
但是發現引言失敗的,卻都是以往的引言方式
原始碼
討論區觀看畫面
這問題反而與kp3011兄的相反
不過小弟發現了個很有趣的地方,只要是引言失敗的,小弟利用討論區編輯文章的功能,將引言結束語法[/quote]與文末之間按下enter(給於斷行符號)並存檔後,就可以正常引言 @@
利用討論區編輯功能修改
phpmyadmin 觀看資料庫這筆內容,被加上一組code
再回討論區觀看,已經正常引言@@
還懇請大家協助 , 謝謝 ...