整合 MediaWiki 與 FCKeditor

MediaWiki 與 FCKeditor 在 Wiki 與 WYSIWYG editor 領域各佔有一片天,因此 FCKeditor 也為了 MediaWiki 特地發展出一個專用的整合套件及專屬指引網頁

安裝方式蠻簡單,步驟如下:


1. 下載 FCKeditor extension

2. 解壓縮後,將之置於 MediaWiki 安裝目錄的 extensions 目錄下(就是將 FCKeditor 整個資料夾丟到 extensions 目錄)

3. 將下列述敘加入 LocalSettings.php 檔案內(直接放置於最後即可)

require_once $IP . "/extensions/FCKeditor/FCKeditor.php";

4. 修改 includes/EditPage.php 檔案(此修改係為了讓預覽功能正常)

尋找 function getPreviewText() 進行下列修改

Before:

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

After:

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

Before:

1
2
3
wfProfileIn( $fname );
 
if ( $this->mTriedSave && !$this->mTokenOk ) {

After:

1
2
3
4
5
6
7
8
wfProfileIn( $fname );
 
if ($wgUser->getOption( 'showtoolbar' ) && !$wgUser->getOption( 'riched_disable' )) {
$oldTextBox1 = $this->textbox1;
$this->importFormData( $wgRequest );
}
 
if ( $this->mTriedSave && !$this->mTokenOk ) {

Before:

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

After:

1
2
3
4
5
6
if ($wgUser->getOption( 'showtoolbar' ) && !$wgUser->getOption( 'riched_disable' )) {
$this->textbox1 = $oldTextBox1;
}
 
wfProfileOut( $fname );
return $previewhead . $previewHTML;

5. 修改 includes\specials\SpecialPreferences.php 檔案,此修改為選擇性的,非必要。此修改主要是在『我的參數設置 (my preferences)』選單裡增加獨立的『Rich Editor』設定頁,若不做此修改,FCKeditor 的相關設定會放置於『雜項(Misc)』設定頁。

尋找 function mainPrefsForm( $status , $message = ” ) 進行下列修改

Before:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
global $wgLivePreview;
$wgOut->addHTML( '<fieldset><legend>' . wfMsg( 'textboxsize' ) . '</legend>
<div>' .
wfInputLabel( wfMsg( 'rows' ), 'wpRows', 'wpRows', 3, $this->mRows ) .
' ' .
wfInputLabel( wfMsg( 'columns' ), 'wpCols', 'wpCols', 3, $this->mCols ) .
"</div>" .
$this->getToggles( array(
'editsection',
'editsectiononrightclick',
'editondblclick',
'editwidth',
'showtoolbar',
'previewonfirst',
'previewontop',
'minordefault',
'externaleditor',
'externaldiff',
$wgLivePreview ? 'uselivepreview' : false,
'forceeditsummary',
) ) . '</fieldset>'
);

After:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
global $wgLivePreview;
$wgOut->addHTML( '<fieldset><legend>' . wfMsg( 'textboxsize' ) . '</legend>
<div>' .
wfInputLabel( wfMsg( 'rows' ), 'wpRows', 'wpRows', 3, $this->mRows ) .
' ' .
wfInputLabel( wfMsg( 'columns' ), 'wpCols', 'wpCols', 3, $this->mCols ) .
"</div>" .
$this->getToggles( array(
'editsection',
'editsectiononrightclick',
'editondblclick',
'editwidth',
'showtoolbar',
'riched_disable', //add new tab (Rich Editor)
'previewonfirst',
'previewontop',
'minordefault',
'externaleditor',
'externaldiff',
$wgLivePreview ? 'uselivepreview' : false,
'forceeditsummary',
) ) . '</fieldset>'
);
 
# FCKeditor
# load FCKeditor settings into separate tab
if (!$wgUser->getOption( 'riched_disable' )) {
$wgOut->addHTML( '<fieldset><legend>' . wfMsg( 'textrichditor' ) . '</legend>' .
$this->getToggles( FCKeditor::$nsToggles ) . '</fieldset>'
);
}

5 個留言

  1. 發表於:2008年10月22日 18:14 1. 作者:鐵樹

    樓主太感謝你了!!
    找了許多個網站,終於給我找到一個看的懂的
    謝謝!

  2. 發表於:2008年11月28日 11:15 2. 作者:小莊

    SpecialPreferences.php的路徑是在 includes \specials\ SpecialPreferences.php, 而不是 includes\SpecialPreferences.php

  3. 發表於:2009年01月05日 17:02 3. 作者:ac12zz

    大感激!!!

    小弟的Wiki終於有個好用的編輯介面了!!
    感謝格主教學

  4. 發表於:2009年01月06日 0:53 4. 作者:落腳齋主人

    小莊, 感謝指正, 已做了修改!

  5. 發表於:2009年03月16日 0:48 5. 作者:Jotter For Aone » Blog Archive » MediaWiki更新公告—-V1.14

    [...] 之后参考”使预览生效“的教程即可基本完成安装设置.当然,这并非完全的教程,有时间我会更好的整理 一份自己满意的教程的啦. [...]

引用 | 訂閱留言(RSS Feed)

發表您的留言