テンプレートのカスタマイズ

概要

EC-CUBE4系では、セキュリティおよび責務分離の観点から、 管理画面で作成した「ブロック」や、Resource/template/default/Block配下のブロックテンプレートを、テンプレート内の任意の場所で呼び出すための専用 Twig 関数が提供されています。

この仕組みを利用することで、管理画面で作成したブロックや、
Resource/template/default/Block 配下に配置したブロックテンプレートを、
テンプレート内の任意の場所で呼び出すことができます。

本ページでは、Twig 関数を利用したブロック呼び出し方法について説明します。

Twig関数によるブロック呼び出し #2263

EC-CUBEが提供するTwig拡張により、eccube_block_<block_name>() という形式の関数を用いて、特定のブロックを直接レンダリングできます。

呼び出し対象として、いずれかに該当するブロックが対象となります。

  • 管理画面の
    [コンテンツ管理] > [ブロック管理] で作成されたブロック
  • Resource/template/default/Block 配下に Twig ファイルを配置し、ブロック管理で登録されたブロック

Block ディレクトリに Twigファイルを配置しただけではブロックとしては認識されません。  必ず管理画面の「ブロック管理」でブロックを作成・有効化する必要があります。

基本的な使い方

テンプレートファイル(.twig)内で以下のように記述します。


{# 例: ロゴブロック(logo.twig)を呼び出す場合 #}
{{ eccube_block_logo() }}

{# 例: カテゴリブロック(category.twig)を呼び出す場合 #}
{{ eccube_block_category() }}

通常、ブロックの配置は管理画面の 「レイアウト管理」 により行われます。 この Twig 関数を使用することで、レイアウト枠(サイドバー・フッターなど)に依存せず、テンプレート内の任意の位置にブロックを埋め込むことが可能です。

活用例

特定ページへの固定表示を行いたい場合など、ページテンプレートの特定の HTML 構造の中にブロックを直接組み込むことができます。 また、Twig の条件分岐と組み合わせることで、条件付きで表示されるブロックを実装できます。


{% if app.user %}
  {{ eccube_block_member_banner() }}
{% endif %}

更新日時: