EC-CUBE3 プラグインを作成してみる ステップ2
前にアップした管理画面カラーバリエーションの切り替えプラグインを作るぜ。
ということで、次は イベント・・・
記述は
まず
config.yml
マニュアルのconfig.yml 説明
プラグイン全体の設定ファイルを記述します。
【設定項目】
●name
インストール後に表示されるプラグイン名です。(任意の文字)
●version
インストール後に表示されるバージョンです。(任意の文字)
バージョンアップ管理を行う際にご活用ください
。
●code
オーナーズストアがプラグインを識別するコードです。(英数字/オーナーズストア内で一意)
●event
イベントの業務処理ファイル名を記述してください。
後述の
{EventName}.php
が読み込まれます。
event項目にイヴェントで実行するファイル名(拡張子抜き)を記述する。
実際の内容
name: 管理画面カラーバリエーション
code: AdminColorVariation
version: 1.0.0
event: AdminColorVariationEvent
で書いたEvent名.phpのファイルを用意する。
AdminColorVariationEvent.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
namespace Plugin\AdminColorVariation; use Symfony\Component\HttpKernel\Event\FilterResponseEvent; //--イベントクラス class AdminColorVariationEvent { /** * @var \Eccube\Application */ private $app; /** --------------------------------- * 関数名 __construct * * @param $app * * @return * ---------------------------------*/ public function __construct($app) { $this->app = $app; } /** --------------------------------- * 関数名 onAdminRenderBefore * * @param FilterResponseEvent $event * * @return * ---------------------------------*/ public function onAdminRenderBefore(FilterResponseEvent $event) { //引数eventから 内容を取得する $response = $event->getResponse(); $html = $response->getContent(); //内容を書き換え $html='<!--event-->'.$html.'<!--eventend-->'; //出力オブジェクトにセット $response->setContent($html); $event->setResponse($response); } } |
event.yml
EC-CUBE 定義フックポイントイベントと、先の AdminColorVariationEvent.php の関数を結びつける
eccube.event.admin.response:
– [onAdminRenderBefore,NORMAL]
まとめ
config.yml の event: AdminColorVariationEvent
と同じ名前で
→ AdminColorVariationEvent.php
を作る
event.yml に
AdminColorVariationEvent.php 内の関数
を呼び出すイベント定義を書く
以上
AdminColorVariationEvent.php のクラス名は合わせる必要があるのかは不明だが、合わせたほうがいいんでしょうね。
※はまりポイント AdminColorVariationEvent.php を作ったけど、イベント時に関数が呼ばれない!!
なにがいけないのか?1日悩む。関数名がいけないのか?なんやかんや試したけど
まったくできず。
ふと見ると
先頭に
<?php
がない!!!(ーー;
こんな、ポカするひといないと思いますけど。気をつけてね。
1 |
] |