【CakePHP】その場編集(edit in place)をプラグインでやってみる

excelのセルを書き換えるときのように、
テキストをクリックしたら、テキストそのものが編集フォームに置き換わる(=その場編集、edit in place, eip)サイトがありますよね。

あれをCakePHPでやろうとしたのですが、検索でヒットした方法はAjaxヘルパーやjsヘルパーを使ったものでした。
これらは最近非推奨だったり、将来的になくなってしまうとのことなので
思い切ってプラグインを使ってみることにしました。

 

今回使ったのはこちらです。

github.com

 

さて、結論から言いますとうまく動かなかったのですが、
たぶん導入まではうまくいったと思いますので手順を書いておきます。

導入手順

まずは上記githubプラグインをクローンします。

git clone https://github.com/zeroasterisk/CakePHP-Eip.git app/Plugin/Eip

続いてプラグインEipフォルダに含まれるbootstrap-editableをeipとしてapp/webrootにコピーします。

cd app/webroot
cp -r ../Plugin/Eip/webroot/bootstrap-editable/bootstrap-editable eip

次に設定ファイルをコピーします

cd app/Config
cp ../Plugin/Eip/Config/eip.php ./

次にConfigフォルダにあるbootstrap.phpの末尾に
次の1行を書き加えます

CakePlugin::load('Eip');

githubのREADMEにはここまでしか書かれていませんが、
プラグインのヘルパーファイル

app/Plugin/Eip/View/Helper/EipHelper.php
にStringクラス(CakePHPのバージョン2.7以降では廃止)が使われているので、該当行(たぶん284行目)を書き変えます。

// generate an elementId
$elementId = $key = 'eip_' . CakeText::uuid();

これで導入完了です。

あとはREADMEのUsageの通りにやれば使えるはず…なのですが
私の場合、とくにエラーは出ないけど、eip化したテキストをクリックしても何も起きないという現象に見舞われています。
ちょっと原因を特定するのに時間がかかりそうです…