[eccube3]ページによってデザインとかを振り分ける方法

簡単な話。

仕組みの簡単な説明

ざっくり言って、全部のページは「default_frame.twig」に各コンテンツをぶち込んで表示してる。「default_frame.twig」でレイアウト管理してるって言えばいいか、管理画面でブロックをぶち込んだらそこにそれが表示されるってのは、ここでそういう風に組んであるから。名前からしてフレームだわね。

各ページのtwigファイルを見たらわかるけど、最初にこれが書いてある。

{% extends 'default_frame.twig' %}

「default_frame.twig」に内容をぶち込んで表示するよって意味。

どうするか

「default_frame.twig」と同階層に新しくフレームデータを作る。
「default_frame2.twig」って名前で作ったとする。
それを使いたいページのtwigを開いてファイル名をそれにする。

{% extends 'default_frame2.twig' %}

新しく作ったやつに反映されて表示される。

フレームを複数作るときのポイント

完全に独立したものを作りたければ気にするところじゃないんだけど、まあでも<head>の中身はほぼ使いまわしで済ませる人ばかりだと思うし、でもたまに修正することもある。で、その修正は全部のフレームに反映させたいってなる。コピペすれば済むけど極力一元管理したほうが安心できるんで、例えば<meta>類とか、blockに逃がしてそこから読ませたほうが良いかもなと思った。

コメント

タイトルとURLをコピーしました