プラグイン > 開発について > ブロックのレンダリングイベントが呼ばれない |
開発について
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
h_tanaka |
投稿日時: 2019/5/27 14:36
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1646 |
ブロックのレンダリングイベントが呼ばれない EC-CUBE4.0.2
プラグインでカテゴリナビのブロックを変更するために、ブロックのレンダリングイベントでスニペットを追加しようとしたのですが、なぜか呼ばれません。 app/Plugin/tbsTest/Event.php
app/Plugin/tbsTest/Resource/template/default/Block/category_nav_pc.twig
上記の★の場所にデバッグ文を入れています。 カテゴリナビのあるページを表示すると、OK1とOK3は表示されるのですが、OK2が表示されません。 原因わかりますでしょうか? なお、Product/list.twig などブロックでないページは呼べています。 もしかして4系ではControllerのないブロックはレンダリングイベントが呼べないのでしょうか? |
468 |
投稿日時: 2019/5/28 9:20
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: ブロックのレンダリングイベントが呼ばれない 多分、Controllerが無いとテンプレートフックは発動しないと思います。
Controllerのrender()から処理される流れの中でテンプレートフックのイベントが実行されていると思います。 3系もそのような仕様だったと思います。
|
h_tanaka |
投稿日時: 2019/5/28 9:32
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1646 |
Re: ブロックのレンダリングイベントが呼ばれない 468さん
やはりそうですか。 ブロックのテンプレートを差し替えできないとなると、別の方法で実現するしかなさそうですね。。
|
umebius |
投稿日時: 2019/5/28 10:01
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: ブロックのレンダリングイベントが呼ばれない 4系ではブロック呼び出しの際にコントローラーがなくてもtwig->renderしているため
3系と違ってコントローラーがなくてもTemplateEventが呼ばれており"OK1"と"OK3"は出力されるのですが、addSnippetは動作しなさそうですね。 というのもブロック自体、default_frame.twigから呼び出しているので、その時点でaddSnipetしても反映されなさそうです(方法はあるかもしれませんが) また、ページによってはTemplateEvent自体が発火しない問題もあるので、どのページでもコントトーラ無しブロックのTemplateEventが呼ばれるかは検証が必要そうです。 https://github.com/EC-CUBE/ec-cube/issues/4136
|
h_tanaka |
投稿日時: 2019/5/28 10:13
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1646 |
Re: ブロックのレンダリングイベントが呼ばれない umebius さん
default_frame.twigからの呼び出し時だとタイミング的に遅いということですね。 issue に追加させていただきました。 https://github.com/EC-CUBE/ec-cube/issues/4171
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |