CKEditorのツールバーをカスタマイズしてみます。
複数のCKEditorを1ページに用いることも可能で、それぞれ異なるツールバーを入れることも考えてみます。
独自のCKEditor用config.jsを用意すればOKです。
流れとしては、
1.独自config.jsを作成し、その中にtoolbar設定を書く。
2.CKEDITOR.replace()時に、1で作成したファイルをcustomConfig: で呼ぶ
だけです。
では、まず独自config.jsを作りましょう。ファイル名はedit1config.js とします。
で、 edit1テキストエリアに上記config設定をしたCKEditorを組み込みます。
CKEditor API documentation
http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html
CKEditor Developers Guide
http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Toolbar
まるひろの独学-者(どくがくもん)の独り言の記事
http://ameblo.jp/dokugakumono/entry-10400796859.html
この記事が気に入ったりした方は、自分のブログを書くときに「下のURLをコピーして、自分のブログ投稿時のトラックバック欄にペースト」してください。つながります。
URL:
3 月 9th, 2010 at 23:02:41
textareaが悪さして、再編集できなくなったので自己レス。
JavaScript内で以下のようにreplaceでカスタムconfigとして、ファイルを指定すればOK。
CKEDITOR.replace( ‘edit1′,
{
customConfig : ‘相対パス/edit1config.js’
});
4 月 6th, 2010 at 13:41:37
お世話になります。
一画面に二つのメニューの異なるエディタを
表示させるために、参考にさせていただいています。
独自config.jsである、
config1.js
config2.js
二つを準備して
それぞれに、
CKEDITOR.editorConfig = function( config )
{
config.language = ‘ja’;
config.uiColor = ‘#AAC6EF’;
config.enterMode = CKEDITOR.ENTER_BR;
config.skin = ‘office2003′;
config.toolbar =
[
[’Undo’,'Redo’],[’FontSize’,'Bold’,'Italic’,'Underline’,'Strike’],[’TextColor’,'BGColor’]
];
};
等のカスタムしたツールバーの設定を
行ったのですが、
>edit1テキストエリアに上記config設定をしたCKEditorを組み込みます。
の部分は、どうそれぞれのjsファイルを指定すれば
宜しいのでしょうか??
htmlには
と
エディタ読み込み部分の
を記入しています。
参考リンクも参考にさせていただき、
いろいろ試してみたのですが、同じカスタムエディタが表示されたり、フルでエディタが表示されたりと、
うまくいきません。。
宜しくお願い致します。
4 月 7th, 2010 at 0:10:44
tomoさん、コメントありがとうございます。
久々に自分も試してみました。というかソース確認してみました。
相対パスは、CKEditorからの相対パスのようです。
すみません、説明足りませんでしたね。
もしくは、絶対パスで書けばOKかと。
ただ、試してみると、複数のエディタconfigは今一挙動が変でした。
リロードすると、同じだったり違ったり・・・
Firefoxは後から読んだのが前のにも設定されたりでした。
時間あるときに再度見てみます。
4 月 7th, 2010 at 20:38:11
早速の回答をありがとうございます。
理解力が足りなくて、申し訳ありません。
下記の指定でエディタを表示させているのですが、
複数表示の記述にするには、どこを修正したら良いのか
アドバイスを頂けないでしょうか。
未だ、別々に表示させる事が出来ない状況なので。。
—
【html】
<script type=”text/javascript”src=”/ckeditor/ckeditor.js”>
<textarea rows=”15” cols=”70” name=”comment” id=”editor1”>
<textarea rows=”15” cols=”70” name=”comment2” id=”editor2”>
【ckeditor.js】
config.jp指定部分をconfig1.jsに変更
【config1.js】
カスタムツールバーを設定
【config2.js】
別のカスタムツールバーを設定
—
上記だと、editor1,editor2両方共のテキストエリアにconfig1.jsで設定したカスタムツールバーが表示されます。
editor2にconfig2.jsのカスタムツールバーを表示するには、
【html】に
<script type=”text/javascript”>
CKEDITOR.replace( ‘editer2′,
{
customConfig : ‘相対パス/config2.js’
});
</script>
を追記しないといけないという認識なのですが、
(出来てないので、間違っていると思いますが。)
どこを修正すれば宜しいでしょうか。
挙動が変という問題点はあるとは思いますが、
ご指導の程、宜しくお願い致します。
4 月 7th, 2010 at 22:34:14
tomoさん、どうもです。
customConfigでのファイル指定は絶対パスにしてみたりしました?
あと、replaceするスクリプトの位置はどうでしょうか?
ちなみに、自分はjQueryと一緒に使っていて、$(document).ready()時にreplaceする関数呼んで設定してます。
スクリプトを実行するタイミングが悪いのかもしれません。
jQueryを使っていないなら、onLoadでしたっけ?
HTMLやベースのJavaScriptが読み込まれたらreplaceするようにしてみてはどうでしょうか?
4 月 8th, 2010 at 13:55:03
ありがとうございます。
スクリプトの実行タイミングが悪かったようです。
同じくJQueryを使用して、
$(document).ready()時にreplaceする事で
無事変更する事が出来ました。
ただ、customConfigによる独自config.js呼び出しが
相対パスにしても、絶対パスにしてもうまく読み込んでくれないため、
config.js内に
config.toolbar_MyToolbar =
[
];
config.toolbar_MyToolbar2 =
[
];
と、カスタムツールバーの設定を行い、
$(document).ready()時に
CKEDITOR.replace( ‘editor1′,
{
toolbar : ‘MyToolbar’
});
CKEDITOR.replace( ‘editor2′,
{
toolbar : ‘MyToolbar2′,
width : ‘240′
});
と設定する事で対処致しました。
customConfig設定がうまく読み込めないのが
少し心残りでありますが、とりあえず、実現出来た事の
ご報告まで。
いろいろとアドバイスをありがとう御座いました。
11 月 15th, 2010 at 15:34:38
Many thanks for the information.