在 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,
    );
    }

即可。

 


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 HACGIS 的頭像
    HACGIS

    失落的技術

    HACGIS 發表在 痞客邦 留言(0) 人氣()