default見てとか検索してとかあっちこっちから拾ったものまとめ。
随時増やす。
URL関連
appのURL(画像とか用)
<img src="{{ app.config.front_urlpath }}/img/header/logo.png" alt="">
※ドメイン以降の相対パスを出力
商品一覧(カテゴリ別)
商品一覧にパラメータをくっつけたら出る。カテゴリIDはいろんなところでチェックできるから割愛。
■ベタ打ち
/products/list?category_id=**
■コード込み
{{ url('product_list') }}?category_id=**
各ページURL呼び出し
管理画面左メニュー「コンテンツ管理」→「ページ管理」の一覧「ルーティング名」を入れると呼び出せる。WPでいうis_page()みたいな感じか。
ドメイン込みのフルパスが出る。
{{ url('【ルーティング名】') }}
トップページ
{{ url('homepage') }}
http://localhost/eccube3018/html/
カート
{{ url('cart') }}
http://localhost/eccube3018/html/cart
会員関係
<ul>
{% if is_granted('ROLE_USER') %}
<li><a href="{{ url('mypage') }}">マイページ</a></li>
{% if BaseInfo.option_favorite_product == 1 %}
<li><a href="{{ url('mypage_favorite') }}">お気に入り</a></li>
{% endif %}
<li><a href="{{ url('logout') }}">ログアウト</a></li>
{% else %}
<li><a href="{{ url('entry') }}">新規会員登録</a></li>
<li><a href="{{ url('mypage_login') }}">ログイン</a></li>
{% if BaseInfo.option_favorite_product == 1 %}
<li><a href="{{ url('mypage_favorite') }}">お気に入り</a></li>
{% endif %}
{% endif %}
</ul>
お硬いやつ
プライバシーポリシー
{{ url('help_privacy') }}
特定商取引法に基づく表記
{{ url('help_tradelaw') }}
追加したページ
{{ url(app.config.user_data_route, {'route': '【ルーティング名】'}) }}
元からあるページと違って「user_data」ディレクトリを介して作成される点に注意。urlにも「user_data」が入ってる。
urlに「user_data」を入れたくなかったらシステム自体をいじる必要がある。詳細はこっちの記事。
設定呼び出し
管理画面で登録した各項目を呼び出すやつ。
ショップマスター項目
「基本情報設定」→「ショップマスター」のフォームのソースを覗いて、『name=”shop_master[****]”』を『{{ BaseInfo.**** }}』に突っ込めば表示されることを確認。
住所とかの配列っぽいやつは後ろの方のを記入すればOK。
基本情報編集
会社名
{{ BaseInfo.company_name }}
会社名(フリガナ)
{{ BaseInfo.company_kana }}
店名
{{ BaseInfo.shop_name }}
店名(フリガナ)
{{ BaseInfo.shop_kana }}
店名(英語表記)
{{ BaseInfo.shop_name_eng }}
住所
{{ BaseInfo.zip01 }}-{{ BaseInfo.zip02 }}
{{ BaseInfo.pref }}
{{ BaseInfo.addr01 }}
{{ BaseInfo.addr02 }}
電話番号
{{ BaseInfo.tel01 }}-{{ BaseInfo.tel02 }}-{{ BaseInfo.tel03 }}
FAX番号
{{ BaseInfo.fax01 }}-{{ BaseInfo.fax02 }}-{{ BaseInfo.fax03 }}
店舗営業時間
{{ BaseInfo.business_hour }}
送信元メールアドレス(From)
{{ BaseInfo.email01 }}
問い合わせ受付メールアドレス(From, ReplyTo)
{{ BaseInfo.email02 }}
返信受付メールアドレス(ReplyTo)
{{ BaseInfo.email03 }}
送信エラー受付メールアドレス(ReturnPath)
{{ BaseInfo.email04 }}
取り扱い商品
{{ BaseInfo.good_traded|raw|nl2br }}
メッセージ
{{ BaseInfo.message|raw|nl2br }}
送料設定
「number_format」については下の項目を参照。
radioは0~の数字で表示されるのでif文を噛ませて使う感じか。
送料無料条件(金額)
{{ BaseInfo.delivery_free_amount|number_format(0, '.', ',') }}
送料無料条件(数量)
{{ BaseInfo.delivery_free_quantity }}
商品ごとの送料設定を有効にする(0:無効,1:有効)
{{ BaseInfo.option_product_delivery_fee }}
複数配送を有効にする(0:無効,1:有効)
{{ BaseInfo.option_multiple_shipping }}
会員設定
仮会員を有効にする(0:無効,1:有効)
{{ BaseInfo.option_customer_activate }}
マイページに注文状況を表示する(0:無効,1:有効)
{{ BaseInfo.option_mypage_order_status_display }}
お気に入り商品機能を利用する(0:無効,1:有効)
{{ BaseInfo.option_favorite_product }}
自動ログイン機能を有効にする(0:無効,1:有効)
{{ BaseInfo.option_remember_me }}
商品設定
在庫切れ商品を非表示にする(0:無効,1:有効)
{{ BaseInfo.nostock_hidden }}
地図設定
「\Help\about」でgooglemapにぶちこんでるけど、実際どうなんだろうこれ
緯度
{{ BaseInfo.latitude }}
経度
{{ BaseInfo.longitude }}
特定商取引法
備え付けのページを見たら大体わかるので割愛。
「{{ help.law_**** }}」がルールなんだなって感じ。
カート関係(常設のやつ)
カート内総数
{{ Cart.total_quantity }}
カート内合計金額
{{ Cart.total_price|price }}
{% if Cart.CartItems|length > 0 %}
{# カートに何か入ってたら #}
{% else %}
{# カートが空だったら #}
{% endif %}
ページ分岐
ルーティング名を入れたらおっけー
トップページのみ/トップページ以外
{% if PageLayout.url == 'homepage' %}
{% else %}
{% endif %}
ブロック呼び出し
テンプレートに直接埋め込む
「静的ブロック」と「動的ブロック」で記述が変わるんだって。
静的ブロック
{{ include('Block/【ブロックのファイル名】.twig', ignore_missing = true) }}
動的ブロック
{% if app.config.http_cache.enabled %}
{{ render_esi(path('block_【ブロックのファイル名】')) }}
{% else %}
{{ render(path('block_【ブロックのファイル名】')) }}
{% endif %}
例えば「Block/cart.twig」「Block/cart.twig」、プラグインの「Block/recommend_product_block.twig」も動的ブロックの記述でやる。
まあ動作がおかしかったらもう片方で試せばいいって感じのやつ。
TWIGのやつ
日付
copyrightとか用に。
今年
{{ "now"|date('Y') }}
今日
{{ "now"|date('Y.m.d') }}
htmlタグ有効化
「 |raw」をつけると<br>とかを文字列でなくタグとして処理してくれる。
{{ BaseInfo.good_traded|raw }}
「|raw|nl2br」だとtextarea内で改行したところを自動的に<br>にしてくれる。
{{ BaseInfo.good_traded|raw|nl2br }}
金額とか数値とか(number_format)
ものによっては数字をそのまま表示するので知ってると良いかも。
小数点以下を「0」桁表示、小数点区切りを「.」にする、桁区切りを「,」にする
{{ BaseInfo.delivery_free_amount|number_format(0, '.', ',') }}
※整数であっても強制的に小数点以下を表示するので(5.00みたいなかんじ)、要不要はちゃんと考えて指定しないとちょっとだるい。
エスケープ処理(|escape(‘****’))
****にはhtmlとかjsとかを突っ込む。普通に書き出すと特殊文字に置換されてタグが機能しないからそれを回避するためのおまじない。
var lat = {{ BaseInfo.latitude|escape('js') }};
var lng = {{ BaseInfo.longitude|escape('js') }};
現在のページのURLを取得(絶対パス)
OGP設定とかで地味に使う
フルパス
{{ app.request.uri }}
ドメインだけ
{{ app.request.host }}
参考サイト
【3.0.15】twigのフィルタ機能について(3) | NAKWEB × EC-CUBE
EC-CUBE 開発コミュニティ – フォーラム
EC-CUBE3カスタマイズ – ページ内の好きな場所にブロックを設置する方法
EC-CUBE3.016 動的Blockを静的twingに記載する時に詰まった話 – うちの子が言うことには
コメント