エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


CakePHP3にWYSIWYGエディタのCKEditor4を設置、カスタマイズ方法を解説

      2018/03/03

CakePHP3にWYSIWYGエディタのCKEditor4を設置

 

CKEditorとは?

 
CKEditorとは、Webサイトの入力エリアを WYSIWYG形式のエディタにするツールです。
 
01_CakePHP3にWYSIWYGエディタのCKEditor4を設置、カスタマイズ方法を解説
 
オープンソースの WYSIWYG形式のエディタで、軽量、かつ、導入の手間が非常に簡単で、最古参のエディタの一つです。
かつては「FCKeditor」と称していましたが、バージョン 3になるときに「CKEditor」に改称しました。
 
 
WYSIWYGエディタは、いろいろなものが提供されていますので、いろいろ触って試してみるのもいいと思いますが、一つのものを選んでじっくり深く掘り下げていく方が結果的に多様なニーズを満たす対応ができるのではないか、と感じています。
 
そして、その深く掘り下げていく WYSIWYGエディタとして「CKEditor 4」は有効な選択肢になると感じています。
 
CKEditor 4 オフィシャルサイト
https://ckeditor.com/ckeditor-4/
 
 
ちなみに、2017年11月14日に最新版の「CKEditor 5 v1.0.0-alpha.2」がリリースされています。
しかし、「Developer Preview」の「v1.0.0-alpha.2」なので、実務でこれを使うという選択肢はなかなかとりえないと思います。
 
CKEditor 5 オフィシャルサイト
https://ckeditor.com/ckeditor-5-builds/
 
 

CKEditor4、CKEditor5の基本的な設置方法、カスタマイズ方法

 
この記事では、CKEditor4を CakePHP3に導入する解説記事です。
 
CKEditor4、CKEditor5の基本的な導入方法と、カスタマイズ方法については下記に記事を書いていますので、そちらを参考にしてください。
WYSIWYGエディタのCKEditor 4を設置、カスタマイズ、日本語化の方法を解説
WYSIWYGエディタのCKEditor 5を設置、カスタマイズ、日本語化の方法を解説
 
 

CakePHP3に WYSIWYGエディタの CKEditor4を設置するサンプルソース

 

1.add.ctp、edit.ctpに CKEditor4を読み込む情報を記述

 
まず、CKEditor4を読み込む情報を記述します。
CKEditor4は、CDN(content delivery network)にあるスクリプトを読み込みますので、ファイルのダウンロードなどは必要ありません。
 
記述する対象ファイルは、以下です。
 /src/Template/Topics/add.ctp
 /src/Template/Topics/edit.ctp
 

 
1行目の記述で CKEditor4の本体のスクリプトを読み込みます。
URL中の「4.7.3」はバージョンですので、バージョンアップがあった場合はそのバージョンに合わせてください。
 
「standard」は CKEditor4のタイプで、その他「Basic Package」「Full Package」があります。
 
詳しくは下記を参照してください。
WYSIWYGエディタのCKEditor 4を設置、カスタマイズ、日本語化の方法を解説
 
CKEditor4 ダウンロードページ
https://ckeditor.com/ckeditor-4/download/
 
 
また、組み込みを行った CKEditor4の WYSIWYGエディタをどの項目に設定するか、を指定するために、該当項目に「,”id”=>”editor”」を追加し、IDを指定します。
 

 
 
CakePHP3の FormHelperについては「CakePHP3のForm Helperの使い方のまとめ」に記事を書いていますので合わせて参考にしてください。
 
 

2.default.ctpにスクリプトを読み込む情報を記述

 
続いて、add.ctp、edit.ctpに記述した JavaScriptを HTMLに編集するための処理を記述します。
 
記述する対象ファイルは、以下です。
 /src/Template/Layout/default.ctp
 
追記する内容は、以下の通りです。
 

 
このスクリプトは、CKEditor4を設置する入力エリアよりも後に記述する必要があります。
そのため、「</body>」の直前に記述することが一般的です。
(表示スピードを高速化するため、スクリプトを最後に記述するという意味合いもあります。)
 
 
CakePHP3のデフォルトのテンプレートを使っている場合は、これだけで CKEditor4の WYSIWYGエディタが表示されると思います
ですが、オリジナルのテンプレートを作っている場合は、「default.ctp」に下記の記述があるかどうかを確認してください。
 

 
ない場合は、上記のソースコードを「<head>~</head>」の間に追記してください。
 
 

CakePHP3に CKEditor4を読み込む処理の解説

 
CKEditor4の本体の読み込みや、JavaScriptの処理の記述を、「default.ctp」にではなく、「add.ctp」「edit.ctp」に記述しています。
 
これは、CakePHP3のブロック化という処理を利用しています。
 
ブロック化を利用することにより、表示する画面ごとに必要な JavaScriptをそれぞれに読み込むことができるため、処理を軽くすることができます。
 
また、CSSを振り分けることもできるようになります。
 
CakePHP3のブロック化については下記に記事を書きましたので参考にしてください。
CakePHP3でページごとに読み込むJavaScript、CSSを変える処理の解説
 
 
あわあせて、下記の記事で、ブロック化を利用した DatePicker、TimePickerの導入方法を書いていますので、あわせて参考にしてみてください。
CakePHP3にデイトピッカー jQuery UI DatePickerを実装する手順の解説
jQuery UI DatePickerに時間を入力できる機能を追加する方法解説
 
 

CKEditor4のカスタマイズ方法

 
CKEditor4は、非常に多機能で、様々なカスタマイズをするためのオプションが用意されています。
 
オプションの設定を記述するファイルは、「add.ctp」「edit.ctp」です。
 

 
上記の 4~6行目のように、オプションの設定を記述していきます。
 
上記の例は、
「uiColor: ‘#EEEEEE’,」は、エディタのボタンがある箇所の背景の色を指定します。
「width:800,」は、横幅です。単位は「ピクセル」です。
「height: 200,」は、縦幅です。単位は同じく「ピクセル」です。
 
その他の多様なオプションに関しては、下記に解説を書いていますので、あわせて参考にしてください。
WYSIWYGエディタのCKEditor 4を設置、カスタマイズ、日本語化の方法を解説
 
 

CakePHP3の関連記事

CakePHP3で保存前にバリデーション結果を取得する2つの方法
CakePHP3で静的ページの作成は webrootか pagesを使う。トップページを参考に解説
CakePHP3のキャッシュをクリアする方法「bin/cake cache clear_all」を使う
CakePHP3のルーティング(routes.php)の変更が反映されない時はキャッシュのクリアを
Google Analytics APIを CakePHP3で動かしてレポートデータを取得する方法の解説
CakePHP3でComposerでインストールできないプラグイン、外部ライブラリを vendorに入れて手動で読み込む方法
CakePHP3でシェルを作成しコマンドラインから実行・CakePHP2との違い
CakePHP3で生の SQLの実行はConnectionManagerを使う
CakePHP3でデータを保存する save()で発生するエラーを確認する方法を解説
CakePHP3のデバッグキット(DebugKit)を強制的に有効、無効に変更する方法
 
その他の「CakePHP3」に関する記事一覧
 
 

 - CakePHP 2.x 3.x

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

CakePHP3のタイムゾーンを協定世界時UTCから日本標準時間JSTにずれを変更する方法
CakePHP3のタイムゾーンを協定世界時UTCから日本標準時間JSTにずれを変更する方法

CakePHP3の標準設定のタイムゾーンは「UTC(協定世界時)」に設定されている。これを日本標準時に変更する方法(app.php、bootstrap.phpの変更方法)の解説。

CakePHP3でWarning Error: SplFileInfo::openFile()エラーが発生した場合の対処方法
CakePHP3でWarning Error: SplFileInfo::openFile()エラーが発生した場合の対処方法

CakePHP3のキャッシュファイルのパーミッションエラー Error: SplFileInfo::openFile()が発生した場合の対応方法解説。app.phpにキャッシュファイルのパーミッション設定を行い、既存のファイルは削除。

CakePHP 2.3 Model、Controllerの見たい変数の中身をログ出力

CakePHPの Modelや Controllerの変数の中身をログとして出力して見る方法を提供します。

CakePHP3でファイルのアップロード処理を自作・解説付き・その1
CakePHP3でファイルのアップロード処理を自作・解説付き・その1

CakePHP3でファイルをアップロードする処理を、php.netにある「エラーを起こさない」と説明がある処理を参考に作成。サンプルソースとその解説付きで、コピペでも動くし、カスタマイズも簡単!

CakePHP3の画像、ファイルアップロードプラグインUpload Plugin 3.0の設置解説・その1
CakePHP3の画像、ファイルアップロードプラグインUpload Plugin 3.0の設置解説・その1

CakePHP3でファイル、画像をアップロードするプラグイン、upload plugin 3を導入する手順を解説した記事。3部作のその1で基本的な導入方法の解説で読みながら簡単に導入が可能。

CakePHP3でDocumentRootやwebroot、imgフォルダのURLやドメイン、パスを取得
CakePHP3でDocumentRootやwebroot、imgフォルダのURLやドメイン、パスを取得

URLやドメイン、フォルダへのパスの取得は、ビューではUrlHelperを使い、コントローラーではRouterクラスを使います。第2引数の指定でURLを取得することも可能。

CakePHP 2.3で saveの便利な使い方・サンプルソース付き

CakePHPのレコードを保存、更新する際に使う Saveを詳細解説します。

CakePHP3で画像・ファイルのアップロード処理を自作・解説付き・その2
CakePHP3で画像・ファイルのアップロード処理を自作・解説付き・その2

ファイルのアップロード機能の自作サンプルコードとその解説のその2。アップロード機能に関連するファイルの更新や削除の処理や画像、フォルダのパスの指定方法などを含めて解説。

CakePHP3のユーザ管理・認証プラグイン CakeDC/Usersの導入・機能解説・3.1.5対応
CakePHP3のユーザ管理・認証プラグイン CakeDC/Usersの導入・機能解説・3.6.0以降対応

CakePHP3のユーザ管理プラグイン Usersは、ユーザ登録、メール認証、ログイン認証、ユーザ管理、権限管理、reCAPTCHAなど会員制のサイトを簡単に実現可能。その導入方法、カスタマイズ方法を解説。

MySQL、CakePHP 2.3で「tinyint(1)」の Boolean型の動作を再確認

MySQL+CakePHPの環境で「tinyint(1)」を利用する際の動作を検証。「tinyint(1)」の Boolean型について CakePHPでは自動処理が実施されていることを確認しました。