一般純文字不會有問題,加入語法就會有問題
因為 session 前不能有輸出的動作
到 ==> class/view/view.class.php 尋找下面語法
function sendContentType()
{
// build up the header and send it
$header = "Content-Type: ".$this->_contentType.";charset
=".$this->_charset;
//header( $header ); // 這裡把他註解起來就 OK 了
return true;
}
基本上這個 Bug 沒辦法這樣修。並非是有文字輸出。而是 目前 previewpost 是採用 get method 得方式在傳送內容。而 URL 因為過長被截斷。所以才導致這個 Bug 出現。你可以到 adminpreviewpostaction.class.php 中把 //print_r($_REQUEST) uncomment 掉。就可以看到我所說得情況。
另外 view 中的 header 輸出是我們刻意加上的,因為我們希望能讓 pLog 來 control content-type 的變數,而非讓 <meta.... charset=utf-8"> 或是文字輸出來決定。所以那一行沒辦法拿掉。
另外一個 Invalid argument supplied for foreach() 錯誤解決辦法如下:
到 ===> class/action/admin/adminpreviewpostaction.class.php
尋找下面語法
function _loadArticleCategories( $categoryIds )
{
$articleCategories = new ArticleCategories();
$categories = Array();
//foreach( $categoryIds on $categoryId ) // 這邊把他斷行下去
// 這裏不需要 foreach 處理 , 所以 註解起來
{
$category = $articleCategories->getCategory( $categoryIds, $this->_blogInfo->getId());
// $categoryIds 原本是 $categoryId 要加 "s" 喔
if( $category )
array_push( $categories, $category );
}
這個因為 url length 的 bug,不僅會讓 preview 錯誤,連 savedraft 都會錯誤。請參考
http://bugs.lifetype.net/view.php?id=339&nbn=9#bugnotes 。我已經修復了 savedraft 的問題,但是 previewpost 還沒。
另外。category 沒辦法這樣改,因為目前pLog category 為多選,你這樣當 $categoryIds 只有一個值的時候 okay,但是多個值的時候會出錯。
但這是很好的嘗試。加油。
Mark