今日もまたコーディング。Codingが大好きだから。テンプレートファイルの設置場所オリジナル修正用プラグイン用プラグインのテンプレートをカスタマイズする。ApacheTwightmlを生成する最後の部分はTwigテンプレートの役割になっている。engineキャッシュECCUBE3(Symfony)側でキャッシュが効いているため、テンプレートに修正をしてFTPアップロードをしても、反映されない。反映をさせるためには、以下のような手段をとる。管理画面からテンプレートを編集するデバッグモードを使う管理画面からキャッシュを削除する設定でキャッシュを抑制するデバッグモードを使うのが一般的だが、顧客の確認を要するような場合に、顧客側では反映されない。設定でキャッシュを抑制してしまう方が実はトラブルなくていいかもしれない。追記)PHPからキャッシュを削除するAdmin/Content/PageController/edit()の中でキャッシュを削除している処理を見つけた。Finder::create()->in($app['config']['root_dir'].'/app/cache/twig');$fs->remove($finder);なるほど、こういうやり方もあるのか。継承の機能があり、ECCUBE3ではdefault_frame.twigをベースに追記していく形。render()で渡されてくる変数を受け取って、それを埋め込みながらHTMLを作成する。}}のようにして出力。PHP的には変数名->getName()メソッドなどを呼び出しているので、エラーが出た場合はそうした解釈が必要。配列some_arrayを受け取った場合、配列内部の出力には以下のような書き方をする。テンプレートファイルの設置場所オリジナルsrc/Eccube/Resource/Template/基本的には手を触れないファイル。app/templateにファイルをコピーすれば差し替えられるので、編集する際はapp/templateにコピーしてそちらを編集する。修正用app/templateテンプレート修正用のディレクトリ。オリジナルと同じディレクトリ構成で同名のファイルがあれば、オリジナルよりも優先して使われる。プラグイン内のControllerからrender()で指定して使うこともできる。プラグイン用app/plugin/Resource/template/プラグインで提供するテンプレートの置き場所。プラグイン内のControllerからrender()で指定する。プラグイン配布をしない前提であれば、修正用とプラグイン用が分散するのが面倒なので、修正用に全部統一した方がいい気がする。プラグインのテンプレートをカスタマイズする。Qiita{SomePluginCode}/以下のテンプレートをapp/template/default/{SomePluginCode}/にコピーする。{SomePluginCode}/default/foobar.twigがあった場合はapp/template/default/{SomePluginCode}/default/foobar.twigという何か冗長な(defaultが2回)パスになってしまうがそれでいい。余談だが、以前使ったプラグインは、プラグイン本体のディレクトリ内app/Plugin/{プラグインコード}/Viewディレクトリにテンプレートが入っていて、インストールするとapp/templateディレクトリにそれがコピーされていた。app/templateが本物か...と更新したらあに図らんや、そちらはControllerから参照されておらず、app/Plugin/{プラグインコード}/Viewから読み込まれていた。何のためにapp/templateにコピーしたのよ...。Twigテンプレートに値を渡すTwigテンプレートに値を渡す方法はいくつかある。ECCUBE3のControllerはrender()を使っているのでそこに追記すれば簡単だが、コアコードに手を入れないでプラグインから渡すようにしようと思うとなかなか面倒。}}してみるとappやBaseInfoが渡されているので、そこにあるものは使うことができる。render()の中で渡す基本。フォーラムappからうけとるページにはパラメータとしてappが渡ってきているので、下記のように書けば商品情報にアクセスすることが可能です。ロゴブロックに入っているh1タグを動的に変更する方法こちらは同様の方法で、SESSION情報をaddGlobalで渡している。ITぶろぐもちろんグローバルなので、どこで値を変えたか気をつける必要はある。テンプレートイベントのformからデータを取り出すちょっと行き詰まったところがあったのでご紹介がてら。エンジニア文章、写真、デザイン、コーディングまで一通りこなす自走式フルスタックブロガー。読者になる@mogami74をフォローはてなブログをはじめよう!mogami74さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。