テンプレートの項目を触りたいとき
プログラム中の宣言とテンプレートの記述の両方を削除しないとだめ
特にテンプレートはコメントアウトしただけではエラーになって正しく描画されなくなる(途中で止まる)
例えばゲスト会員購入のところ
/src/Eccube/Form/Type/Front/NoMemberType.php
いらない項目を削除する
会社名とか。
ここはコメントアウトでもOK
public function buildForm(FormBuilderInterface $builder, array $options)
{
$config = $this->config;
$builder
->add('name', 'name', array(
'required' => true,
))
->add('kana', 'kana', array(
'required' => true,
))
->add('zip', 'zip', array(
'required' => true,
))
->add('address', 'address', array(
'required' => true,
))
->add('tel', 'tel', array(
'required' => true,
))
->add('email', 'repeated_email');
/*
デフォルトはこんな感じだった
$builder
->add('name', 'name', array(
'required' => true,
))
->add('kana', 'kana', array(
'required' => true,
))
->add('company_name', 'text', array(
'required' => false,
'constraints' => array(
new Assert\Length(array(
'max' => $config['stext_len'],
)),
),
))
->add('zip', 'zip', array(
'required' => true,
))
->add('address', 'address', array(
'required' => true,
))
->add('tel', 'tel', array(
'required' => true,
))
->add('email', 'repeated_email');
*/
}
テンプレートの方
/src/Eccube/Resource/template/default/Shopping/nonmember.twig いらない項目部分を削除
ここはコメントアウトだめらしい ここでは
{{ form_label(form.company_name) }}
{{ form_widget(form.company_name) }} {{ form_errors(form.company_name) }}
を削除
そうすると、会社名の入力項目が消える
カスタマイズ用のテンプレートフォルダを作る
defaultフォルダを使う。
- /html/template/default/css
- /html/template/default/js
- /html/template/default/img
スタイルシートやjavascript、画像を保管するところ。
- /app/template/default/
カスタマイズするもの。
/src/Eccube/Resource/template/defaultからコピーしてここに置いてから改修していくと失敗がない。
注意
- src内のものはECCUBEの核プログラム部分。直接触るとアップデートのときに不都合が出そうだから触らないこと
- テンプレート変更などをしたら管理画面からキャッシュクリアしないと反映されない場合がある。このキャッシュは実際のホームページ表示するときに速度上昇の役目があるらしい
カスタマイズ用テンプレートフォルダの名前を変える
例えばテンプレートフォルダ名をdefaultからcloverにしたいとき(defaultはあくまでdefaultなので、別途作った方が管理上良いかな?)
テンプレートフォルダdefaultをコピーしてcloverに改名
以下を「default」から保存先のパス名(ここではclover)に変更
# 元はdefaultで記述されているところをcloverに変更する
block_realdir: ECCUBE保存先ディレクトリ/app/template/<strong>clover</strong>/Block
template_realdir: ECCUBE保存先ディレクトリ/app/template/<strong>clover</strong>
template_html_realdir: ECCUBE保存先ディレクトリ/html/template/<strong>clover</strong>
front_urlpath: /eccube/html/template/<strong>clover</strong>
リンクを貼りたいときとかテンプレートに記述する指定タグ
ページ管理にある「ルーティング名」を以下のように指定
{{ url(ルーティング名) }}
# 例えば
{{ url('help_tradelaw') }}
基本情報設定>ショップマスターにある会社名なんかを引っ張りたいとき
BaseInfoでやる
{{BaseInfo.company_name}}
{{BaseInfo.add}}
などなど、必要になったらここを参照すること< br/> ECCUBE3の各ページで渡される変数一覧
head領域を編集したいとき
default_frame.twigを触る書き方は中を見ればまあわかるよ、同じように書けばいい
よく使う画像のパス
{{ app.config.front_urlpath }}
#imgタグでの使い方
src="{{ app.config.front_urlpath }}/img-a01.jpg"
管理画面系統
ページの情報はコンテンツ管理の中から触れる
新着情報はそのまま新着情報を登録するところ< br/> ページ管理はページテンプレートを操作
ブロック管理はページ管理の「レイアウト」で出てくるブロックテンプレートの編集ができる 「ヘッダ」「フッタ」とかはここ
注意
上にも書いたけど、ファイルを直接でも管理画面からでも、とにかくテンプレートを変えたら必ずキャッシュ管理でtwigキャッシュクリアすること。これやらないと反映されない
テンプレートのイメージ
コンテンツ管理 > ページ管理から「レイアウト管理」と「ページ管理」で操作。
レイアウト管理
コンテンツ管理 > ブロック管理にある、テンプレートのブロックを指定通りに設置して表示するよ、というイメージがある。
どのブロックを指定位置に配置する、このブロックは常に表示する、などが設定できる。
ブロックはブロック管理から追加や編集もできる(サーバー上から直接ファイルを触ってもいい、いずれにしてもキャッシュクリアは必須)。
ページ管理
該当ページのページテンプレートを触ることができる。管理画面上でファイル名が表示されるので、触りたいページのテンプレートのファイルを確認して、指定のファイルを直接触った方が安定する気がする。
ここでも作業を反映させるにはやっぱりキャッシュクリアは必須。