ECCUBE4

Twigの使い方

EC-CUBE4ではビューのテンプレートはデフォルトでTwigを採用しています。

コントローラーから渡ってきた変数を表示したり、制御構文を使って繰り返しや条件分岐が可能です。

レイアウト定義

{% extends %} 継承

{% extends '@admin/default_frame.twig' %}

Eccube/Resource/template/admin/default_frame.twigファイルを読み出しています。

1回しか使えません。

{% include %} 挿入

 {{ include('@admin/nav.twig') }}

Eccube/Resource/template/admin/nav.twigファイルを読み出しています。

何回でも読み出しできます!

{% block main %}{% endblock %} ブロック

 {% block main %}{% endblock %}
{% block main %}
表示する内容
{% endblock %}

継承するファイル(例えば、default_frame.twig)に記載しておく、継承先に記載し内容を追加する事ができる

レウアウト定義まとめ

継承(extends)する事で、default_frame.twigの内容を表示しつつ、インクルード(include)やブロック(block)でそのページ特有の内容を追加できる。

制御文

{% if %} if文

{% if hoge == ture %}
hogeがtrueだったら実行
{% else % %}
hogeがfalseだったら実行
{% endif %}

{% for key,value in array %} foreach文

    {% set array = ['a','b','c'] %}
    {% for key,value in array %}
    <br>
    {{ key}}
    <br>
    {{ value }}
    {% endfor %}
実行結果
0
a
1
b
2
c

変数

変数代入

{% set hoge = 'hogehoge' %}
変数hogeにhogehogeを代入

変数展開

{% set hoge = 'hogehoge' %}
{{ hoge }}
実行結果:hogehoge

文字列結合 ~ 変数 ~

    {% set name = 'jum' %}
    <p>{{ '私の名前は' ~ name ~ 'です'}}</p>
実行結果:私の名前はjumです

よく使う関数

is defined

未定義の変数や配列がある場合に条件を分ける事ができます。

nullや空,falseでも変数が存在すればtrueになります。

    {% set hoge = null %}
    {% if hoge is defined %}
    <p>true</p>
    {% else %}
    <p>false</p>
    {% endif %}

null : true
''   :true
false:true
未定義:false

変数 in 配列

配列の値の中に指定の変数が存在するか確認できます。

    {% set hoge = [1,2,3,6] %}
    {% if 4 in hoge %}
    <p>true</p>
    {% else %}
    <p>false</p>
    {% endif %}
実行結果:false

eccube_config

eccubeの設定ファイルである、eccube.yamlに記載した値を読み込むことができます。

ファイルのパス:「app/config/eccube/packages/eccube.yaml」

次の記載ではeccube.yamlに記載した99999という値を取得できます。

{{ eccube_config.eccube_lltext_len }}
parameters:
    eccube_lltext_len: 99999

まだまだ、たくさんありますがとりあえずこの辺が頭に入っていれば問題ないです。