ブロックは管理画面から設置できる便利な機能ですが、管理画面からは#headerや#main_bottomなどいくつか決められた場所にしかブロックを設置できません。
ではブロックを任意の場所で呼び出し表示したい場合はどうすれば良いのでしょうか?
ブロックを管理画面以外から設置する場合はページのテンプレートファイル(Twig)に直接ブロック呼び出しの記述を書くことで実現可能です。
静的ブロックの場合
(例)ギャラリー、ロゴ, etc
{{ include('Block/xxxxxxx.twig', ignore_missing = true) }}
いつも同じコンテンツが表示される静的ブロックの場合はブロックのテンプレートファイルをincludeすることで表示されます。’Block/xxxxxxx.twig’の部分にテンプレート名を入力してください。
動的ブロックの場合
(例)カゴの中、カテゴリ, etc
{% if app.config.http_cache.enabled %} {{ render_esi(path('block_xxxxxxx')) }} {% else %} {{ render(path('block_xxxxxxx')) }} {% endif %}
動的ブロックの場合は対応するコントローラを呼び出し処理を行う必要があるため、上のようなコードで呼び出します。block_xxxxxxxの部分にはブロックのrouteを記述し、ブロックに対応するURLをリクエストすることで返ってきたコンテンツを挿入します。サーバーでiframeを実行しているようなものとお考えください。
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。