在 Drupal 裡面有許多的所見即所得編輯器,比如說: TinyMCE 和 FCKEditor 是兩個比較為大家熟知的。
不過在設定上,有些只允許本文輸入的狀況,常常需要為不同的 class 或是 path 設定例外條件,以免把所有的 TEXTAREA 都變成所見即所得的編輯畫面。
而 WYSIWYG API 就比較聰明,它可以根據輸入格式(Input Format )來設定不同的編輯器,這樣就無須設定例外條件了。
WYSIWYG API 也支援各種不同的所見即所得編輯器,包括:
- FCKeditor
- jWYSIWYG
- markItUp
- NicEdit
- TinyMCE
- Whizzywig
- YUI
這些編輯器支援的功能不一,使用者可依需要來選擇使用。
接下來我來說說這些編輯器的的一些問題:
- FCKeditor:自訂按鈕時,最多只有一排,超過編輯框寬度會被截掉。
- YUI:按鈕會變成垂直排列。
- TinyMCE:在 TinyMCE 3 時,如果有選 Flash 按鈕的話,所有的按鈕會消失不見。
TinyMCE 3 的 Flash 按鈕解法: TinyMCE 3 沒有 Flash 按鈕的 Plugin,要改成 Media 按鈕的 Plugin,所以需要修改相關的程式。
找到 [模組目錄]/wysisyg/editors/tinymce.inc 中的 wysiwyg_tinymce_plugins 函式。
註解掉以下幾行:
'flash' => array(
'path' => $editor['library path'] .'/plugins/flash',
'buttons' => array('flash' => t('Flash')),
'extended_valid_elements' => array('img[class|src|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name|obj|param|embed]'),
'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/flash',
'internal' => TRUE,
'load' => TRUE,
),
將函數最後的:
if ($editor['installed version'] > 3) {
$plugins['xhtmlxtras'] = array(
'path' => $editor['library path'] .'/plugins/xhtmlxtras',
'buttons' => array('cite' => t('Citation'), 'del' => t('Deleted'), 'abbr' => t('Abbreviation'), 'acronym' => t('Acronym'), 'ins' => t('Inserted')),
'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',
'internal' => TRUE,
'load' => TRUE,
);
$plugins['safari'] = array(
'path' => $editor['library path'] .'/plugins/safari',
'extensions' => array('safari' => t('Safari compatibility')),
'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari',
'internal' => TRUE,
'load' => TRUE,
);
}
換成:
if ($editor['installed version'] > 3) {
$plugins['xhtmlxtras'] = array(
'path' => $editor['library path'] .'/plugins/xhtmlxtras',
'buttons' => array('cite' => t('Citation'), 'del' => t('Deleted'), 'abbr' => t('Abbreviation'), 'acronym' => t('Acronym'), 'ins' => t('Inserted')),
'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',
'internal' => TRUE,
'load' => TRUE,
);
$plugins['safari'] = array(
'path' => $editor['library path'] .'/plugins/safari',
'extensions' => array('safari' => t('Safari compatibility')),
'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari',
'internal' => TRUE,
'load' => TRUE,
);
$plugins['media'] = array(
'path' => $editor['library path'] .'/plugins/media',
'buttons' => array('media' => t('Insert media')),
'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media',
'internal' => TRUE,
'load' => TRUE,
);
} else {
$plugins['flash'] = array(
'path' => $editor['library path'] .'/plugins/flash',
'buttons' => array('flash' => t('Flash')),
'extended_valid_elements' => array('img[class|src|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name|obj|param|embed]'),
'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/flash',
'internal' => TRUE,
'load' => TRUE,
);
}
即可。
留言列表