MODX の親テンプレート

MODXのサイトをくまなく見ても、ググってもMODXの親テンプレートについての記載は見つからない。なのでやってみた。これは、すごく便利だ。

親テンプレートを指定してみた

MODX のテンプレート作成時、「親テンプレート」という選択欄がある。MODXのサイトをくまなく見ても、ググってもMODXの親テンプレートについての記載は見つからない。なのでやってみた。

結果は非常に単純明快なものだった。通常、新規にテンプレートを作成すると、空白の入力欄が表示されるが、親テンプレートを指定すると、そのコードの [ *content* ] を除く部分がその子テンプレートに自動的に反映される。

親子の関係

仮に親テンプレートが以下のようなコードだったとする

親テンプレート

<!DOCTYPE html>
<html lang="ja">
{{head}}
<body>
{{navigation}}
<main id="contents">

[ *content* ]

</main>
{{footer}}
</body>
</html>

このテンプレートを親に指定した子テンプレートを作成すると、空欄ではなく、以下のような入力欄になる。

子テンプレート

<!DOCTYPE html> <html lang="ja"> {{head}} <body> {{navigation}} <main id="contents">
<空白の入力欄>
</main> {{footer}} </body> </html>

親テンプレートの典型的使い方

テンプレートを作成するとき、[ *content* ] 以外の部分をいちいち書くのは面倒だ。なので、HTML の基本構造を親テンプレートとして登録しておき、そのバリエーションとして子テンプレートを作成すれば、その手間を省くことができるし、テンプレート管理がすごく分かりやすいものになる。

典型的には、親テンプレートで、ヘッダー部、ナビ部、フッター部をそれぞれ、head、navigation、foot などとしてチャンク登録し、階層に応じて IF 文で出力を制御しておく。そして、いくつかの子テンプレートでサイトを管理する。たとえば、ホーム用、下階層、下階層の記事一覧表示用の3種類。

これはかなり便利だ。ちょっとテストすれば分かること。いままで使ってこなかったことを、すごくもったいなく感じている。

blog カテゴリー

PAGE TOP