
WordPressなどでは、TinyMCEが使われていますが、画像などのアップロードをしようとすると、TinyMCEだけを組み込んでもできません。
そこで、TinyMCEに似ていて、なおかつファイルアップロードまで簡単に組み込めてしまえるCKEditor,CKFinderを使うことにします。
CKEditorがTinyMCE、CKFinderがファイルアップロード機能(実際は管理も出来ますが今回は省略)です。
ダウンロード
ckeditorを以下から(ver3.2)
http://ckeditor.com/
ckfinderを以下から(今回はPHP版を ver1.4.3)
http://ckfinder.com/
ドキュメントは以下に(CKEditor,CKFinderともに)
http://docs.cksource.com/
セットアップ
それぞれ解凍します。好きな場所に置いて、_samples/内を呼びましょう。サンプルが表示されます。(サーバを立ち上げておいてください)
画像のアップロードについて
画像のアップロード機能は、CKFinderのサンプル ckfinder/_samples/js/ckeditor.htmlを立ち上げる。
何も変更していないと、CKEditor.jsが見つからないといわれるので、ckeditor.htmlをテキストエディタで開き、ckeditor.jsへのパスを通すと大丈夫。
JAVASCRIPT:
-
<script type="text/javascript" src="../../../ckeditor/ckeditor.js"></script>
-
<script type="text/javascript" src="../../ckfinder.js"></script>
しかし、これだけではだめで、実際アップロードするときは、Ajax経由でckfinder/config.phpを見るので、とりあえず動かしたいなら、CheckAuthentication()の戻り値をtrueに変更する。
※コメントにも書いてあるように、return trueはセキュリティ上よろしくないので、システム上でログインしているユーザーのみOKにするような仕組みを作っておくこと。
PHP:
-
function CheckAuthentication()
-
{
-
return true;
-
}
あとは、 アップロードされるディレクトリを作っておけばよい。
デフォルトは以下のディレクトリなので、サーバルートにckfinder/userfiles/を作ればOK。
PHP:
-
$baseUrl = '/ckfinder/userfiles/';
CKEditorとCKFinderの仕組み
ckfinder/_samples/js/ckeditor.htmlのソースを見てみましょう。実はすごく単純です。
以下に抜粋して必要な場所のみを記載します。
HTML:
-
<html xmlns="http://www.w3.org/1999/xhtml">;
-
-
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
-
<script type="text/javascript" src="ckfinder/ckfinder.js"></script>
-
</head>
-
-
-
<textarea id="editor1" name="editor1" rows="10" cols="80"></textarea>
-
-
// This is a check for the CKEditor class. If not defined, the paths must be checked.
-
if ( typeof CKEDITOR == 'undefined' )
-
{
-
//CKEDITORが見つからなかった
-
-
}
-
else
-
{
-
var editor = CKEDITOR.replace( 'editor1' );
-
editor.setData( '
<p>最初にテキストエリアに表示する.
</p>' );
-
-
// Just call CKFinder.SetupCKEditor and pass the CKEditor instance as the first argument.
-
// The second parameter (optional), is the path for the CKFinder installation (default = "/ckfinder/").
-
//CKFinderのセットアップ。CKEditorであるeditorと、ckfinderインストールパスを
-
CKFinder.SetupCKEditor( editor, 'ckfinder/' ) ;
-
-
// It is also possible to pass an object with selected CKFinder properties as a second argument.
-
// CKFinder.SetupCKEditor( editor, { BasePath : '../../', RememberLastFolder : false } ) ;
-
}
-
</script>
-
</p>
-
</body>
-
</html>
次回はCKEditorを中心にカスタマイズしていきたいと思います。
4 月 26th, 2010 at 11:29:18
[…] 小山太郎.com さんのサイトを参考に、ちょっと触ってみた。 […]
7 月 28th, 2010 at 20:18:25
[…] CKEditor,CKFinder を使ってWORDのようなフォームを作る […]