:::

MediaWiki + FCKeditor功能介紹與安裝教學

7月 13, 2008 5 Comments Edit Post

image 

MediaWiki是一套Wiki系統,具備容易更動、版本記錄、簡易權限控管、檔案上傳、以及完整支援多國語系的特點,著名的維基百科(Wikipedia)、台灣棒球維基館都是基於MediaWiki發展而成的網站,許多專案計畫也使用MediaWiki以方便小組成員共同協作編輯。

image

(from 棒球專欄/鏘鏘講古/054 1-現場見證誠泰的十一連勝,之一)

然而,MediaWiki獨特的編輯語法,總是讓使用者望而怯之(包括我)。儘管大部分只撰寫文字內容的情況下,你不會使用到表格、項目符號等等功能,但當你要使用到這些功能時,這將會是一件非常麻煩的工作。

image

FCKeditor,這是一個基於JavaScript的所見即得編輯器(WYSIWYG)。除了可以直接產生HTML程式碼並預覽結果之外,還具備了檔案、圖片上傳的能力。你可以到FCKeditor的DEMO頁面來體驗一下他的功能。之前研究XOOPS時,可以不使用內建的編輯器而改用功能強大的FCKeditor。現在在MediaWiki上,一樣可以把FCKeditor作為預設的編輯器!

image

MediaWiki+FCKeditor,該計畫將FCKeditor作為MediaWiki的一個插件(plugin),使FCKeditor可以產生原生的MediaWiki語法。你可到它的Sandbox玩玩看他的功能。

image

MediaWiki+FCKeditor不僅是把FCKeditor拿過來而已,還有許多特別為MediaWiki設計的功能,例如左上角的Wikitext(取代了原本的HTML)及右上角Insert/Edit Template、Special Tag、Reference等功能。

image

image 

最讓我讚賞的是Link與Insert Image可以直接用AJAX搜尋已經存在的頁面或檔案,省下使用者還要記得要連結頁面名稱的功夫。

要說MediaWiki+FCKeditor的缺點的話,大概就是貼上時只能限制純文字,而不能像原本FCKeditor可以直接對文字格式進行轉換。


MediaWiki+FCKeditor安裝

儘管安裝指導網頁裡面已經寫得很清楚了,不過我在安裝時還是遇到了點小問題。參考了另一篇「整合MediaWiki與FCKeditor」,我也在這邊把安裝教學也寫一下:

1. 下載MediaWiki-FCKeditor extension

首頁下面的Download it!可以找到關於下載的資訊。官方網站是建議用SVN來下載及同步更新,你也可以直接到它的SVN trunk裡面下載一份一份的檔案。

注意的是,要依照trunk當中的目錄結構排列,部份檔案是包含FCKeditor的tar.gz或zip裡面。最後安裝完成應該要呈以下的目錄結構,紅字的部份是加裝FCKeditor所需要的檔案跟目錄,粗體字為目錄。

$ cd $MEDIAWIKI_HOME (移動到安裝MediaWiki的根目錄)
$ tree
|- ..
|- docs
|- extensions   
  |- ...   
  |- FCKeditor      
     |- css      
     |- fckeditor      
     |- plugins      
     |- FCKeditor.body.php      
     |- fckeditor_config.js      
     |- FCKeditor.i18n.en.php      
     |- ...      
     |- FCKeditorParser.body.php      
     |- FCKeditorParserOptions.body.php      
     |- FCKeditor.php      
     |- FCKeditorSajax.body.php      
     |- FCKeditorSkin.body.php

這個步驟應該會花點時間下載檔案,要一一地確認喔,另外也別忘了要把PHP的執行權限打開才能正確執行。

2. 修改MediaWiki設定檔

找到LocalSettings.php,通常會在MediaWiki安裝資料夾的跟目錄裡面,例如/home/wiki/public_html/LocalSettings.php。在LocalSettings.php最後加入以下程式碼:

require_once( "extensions/FCKeditor/fckeditor.php" );

3. 讓預覽功能正常

修改MediaWiki目錄中的included/EditPage.php檔案。有三處需要修改:

a. 找到

global $wgOut, $wgUser, $wgTitle, $wgParser;

改成

global $wgOut, $wgUser, $wgTitle, $wgParser, $wgRequest;

b. 找到

wfProfileIn( $fname );

if ( $this->mTriedSave && !$this->mTokenOk ) {

改成

wfProfileIn( $fname );

if ($wgUser->getOption( 'showtoolbar' ) && !$wgUser->getOption( 'riched_disable' )) {
$oldTextBox1 = $this->textbox1;
$this->importFormData( $wgRequest );
}

if ( $this->mTriedSave && !$this->mTokenOk ) {

c. 找到

wfProfileOut( $fname );
return $previewhead . $previewHTML;

改成

if ($wgUser->getOption( 'showtoolbar' ) && !
$wgUser->getOption( 'riched_disable' )) {
$this->textbox1 = $oldTextBox1;
}

wfProfileOut( $fname );
return $previewhead . $previewHTML;

以上步驟即可讓FCKeditor嵌入MediaWiki當中,祝大家使用愉快!

總共5 則留言, (我要發問)

  1. 如果安裝MediaWiki時發生以下錯誤:

    Warning: domdocument::domdocument() expects at least 1 parameter, 0 given in C:\xampp\htdocs\w\includes\Preprocessor_DOM.php on line 566

    Fatal error: Call to undefined method domdocument::loadXML() in C:\xampp\htdocs\w\includes\Preprocessor_DOM.php on line 568

    請參考在LocalSettings.php加入以下設定:

    $wgParserConf['preprocessorClass'] = 'Preprocessor_Hash';

    參考來源:http://hi.baidu.com/ovo60/blog/item/0a6157fb0a6b0c106d22ebc7.html

    回覆刪除
  2. 跟大大報告一下,以下是我的實驗心得(我不是程式人員,純粹看大大的文章一步一步的把FCKedito建立起來)。

    在您的大作中:
    "
    在LocalSettings.php最後加入以下程式碼:
    require_once( "extensions/FCKeditor/fckeditor.php" );
    "

    其中的 fckeditor.php 需要改成 FCKeditor.php才可使用

    順便請教一下大大,像這種指向某個檔案的路徑,也有case sensitive的問題嗎?

    回覆刪除
  3. 在Windows系統下應該沒這問題,但Linux環境下則是會有大小寫的差別的。
    因為我抓下來的時候就是檔名就是全小寫了,所以原文裡面我是寫小寫。
    如果檔案抓不到的話,則要注意一下檔名或路徑。

    能注意到這點,阿倫你也蠻厲害的呢!OwOb

    回覆刪除
  4. 很冒昧留言想向您請教。

    我最近安裝了 MediaWiki 和 FCKEditor,FCKeditor 工具列基本功能似乎俱備,但無論如何無法上傳圖檔(只能輸入/尋找已上傳圖片)。我在英文各網站上找得萬念俱灰,有此問題的似乎不止我一人,但完全找不到任何解決方案,甚至已經有人下結論說 MediaWiki 版的 FCKEditor 應無此功能。您的安裝過程似乎頗為順利,不知是否能請教一二?是一安裝好就有上傳功能,還是需要更改哪些程式碼?

    感謝!

    回覆刪除
  5. 我沒有使用FCKeditor圖片上傳的功能,所以不太清楚這方面的問題,不好意思。

    回覆刪除

留言工具: