CKEditor セッティングのカスタマイズ

カテゴリ: Nucleus / 公開日: 2010年1月25日(月曜)00:07 / 投稿者: Tom Goodsun

CKEditorをNucleusで使いやすいように設定を変更してみた。
使ってて思い出したのですが、私がなぜTinyMCEを押していたのかというと、TinyMCEはCSSの編集をできる機能がついている。
インターフェースはDreamweaverと同じ。
これは、記述法を知っている人なら自由に編集できるなと思ったのだ。

問題のCKEditorですが、今回もCSS編集機能は実装されていない。
基本的にはFCKEditorと同じみたいだ。
特徴は以下のページで紹介されている。

http://ckeditor.com/why-choose

設定したいのは以下のとおり。

  • 画像を左右にフロートするスタイル
  • コードを部分(preタグ)のスタイル
  • テンプレートの追加の仕方(勉強的な意味で)

 

画像を左右にフロートさせる/コードを部分(preタグ)のスタイル

これは簡単。configファイルに設定追加するだけだ。
デフォルトはCKEditorのデフォルトのスタイルが一覧化される。
これを、変更するにはCKEditorを初期化する処理の前(replace()メソッドなどを実行する前)に以下のコードを追加する。

CKEDITOR.addStylesSet( 'myStyles', [
    // Block Styles
    { name : 'Image Float Left' , element : 'div', styles : { 'float' : 'left' , 'margin' : '10px' } },
    { name : 'Image Float Right', element : 'div', styles : { 'float' : 'right', 'margin' : '10px' } },
    { name : 'Bordered Image Float Left' , element : 'div', styles : { 'border' : '1px solid #666', 'float' : 'left' , 'margin' : '10px' } },
    { name : 'Bordered Image Float Right', element : 'div', styles : { 'border' : '1px solid #666', 'float' : 'right', 'margin' : '10px' } },
    { name : 'Code', element : 'pre', styles : { 'background' : '#E4EFFC', 'border-left' : '5px solid #7CB1ED', 'color' : '#175CA9', 'font-family' : 'MS ゴシック', 'font-size' : '12px', 'padding' : '5px 10px' } }
]);
CKEDITOR.config.stylesCombo_stylesSet = 'myStyles';

追加したコードは、画像を左右にフロートさせる、画像にボーダーをつけて左右にフロートさせる、preタグをスタイルするの5種類。
addStylesSet()の第2引数は以下の形式。

[
    {
        name: 'スタイル欄に表示される名前',
        element: 'タグの名前',
        attributes: {
            '属性名': '値',
            '属性名': '値',
            '属性名': '値'
        },
        styles: {
            'CSSプロパティ': '値',
            'CSSプロパティ': '値',
            'CSSプロパティ': '値'
        }
    }
]

attributesもstylesも任意。今回の私の設定では、属性はひとつも設定していない。
 

テンプレートの追加の仕方

以下のような内容のJavaScriptファイルを作る。

CKEDITOR.addTemplates('default',{
    imagesPath:CKEDITOR.getUrl(CKEDITOR.plugins.getPath('templates')+'templates/images/'),
        {
            title:'2-Column Layout',
            image:'template3.gif',
            description:'Layout with 2 columns.',
            html:'<table border="0"><tr><td></td><td></td></tr></table>'
        }
    ]}
);

そしたら、configに以下を追加します。追加ポイントはスタイルのときと同じです。

CKEDITOR.config.templates_files = [ '作ったファイルへのパス' ];

ちなみに作ったファイルの元となるものがckeditor/plugins/templates/templates/default.jsになります。