03 10月 2007

修正Lifetype文章中有backslash '\'的問題

我已經被Lifetype中有backslash問題快煩死了...

在文章中要輸入backslash '\'時,實際上我在打文章時,必須輸入'\\'
如果輸入'\'的話,這個backslash就會被lifetype默默地吃掉....默默地...默默地...默默地...

如果文章中我輸入'\\'
顯示出來的結果是'\'
再重新編輯文章時,輸入區的文章卻變成顯示'\'而沒有顯示'\\'...
因此如果沒有再將'\'改成'\\'的話
這個backslash就會被lifetype默默地吃掉了...

以前想說自己找看看bug在哪,結果...打開Lifetype的source code來看,看得超痛苦的...
因為Lifetype將所有control頁面的流動都包在php中,因此要了解它其中的小變數,真得滿困難的...

不過不知為何,今天開竅了!
上Lifetype的網站API Document頁面看source code,感覺還滿簡單的
看到不知道的變數,都可以直接點選連結看更詳細的說明~
這樣子看就簡單多了,終於找到bug的地方了~

我目前的lifetype版本為lifetype1.2.1

修改的地方只有一個...
lifetype-1.2/class/view/admin/admineditpostview.class.php 裡面的第53

$this->setValue( "postText", str_replace('&', '&', $this->_article->getText( false )));

改成

if( get_magic_quotes_gpc() )
$this->setValue( "postText", str_replace( '\\',"\\\\", str_replace('&', '&', $this->_article->getText( false ))));
else
$this->setValue( "postText", str_replace('&', '&', $this->_article->getText( false )));

沒有留言: