プラグインではテンプレートを差し込む場合、イベントを通じて差し込みます。
テンプレートファイルの配置場所
テンプレートファイルは本体と同じくResourceディレクトリ配下に置きます。
[プラグインコード]
├── Resource
│ └── template
│ ├── admin
│ │ └── XXXX.twig
│ └── XXXX.twig
テンプレートイベント
EC-CUBE3.0.9からは既存画面に対して項目などの追加を行う場合、テンプレートイベントを利用します。
拡張を行いたい画面に対してイベントを指定するには、本体側のControllerにある
return $app->render('Shopping/complete.twig', array(
とtwigファイルを指定している部分がそのままイベント名となります。
event.ymlには、
Shopping/index.twig:
- [onShoppingIndexRender, NORMAL]
とイベント名を指定します。管理画面の場合、
return $app->render('Order/index.twig', array(
とController側でtwigが指定されていた場合、
event.ymlには
Admin/Order/index.twig:
- [onAdminOrderIndexRender, NORMAL]
とAdmin/
をつける必要があります。
テンプレートイベントによる拡張
既存画面に対して拡張を行うにはテンプレートイベントに対する処理を実装する必要があります。 formを項目として追加したい場合、
- XXXXEvent.php
- parts.twig
XXXXEvent.phpにparts.twigの内容も記述しても良いのですが、twigファイルとEvent部分を分離することで可読性がよくなります。
また、JavaSciptタグを追加したい場合、
- XXXXEvent.php
と記述すると追加可能です。