url の代わりにAnypage--<identifier>.tpl.php
が使用されます。これは設計によるものであり、このシステムの全体的な目的です。これは、より深いパスにも拡張できます。page.tpl.php
/identifier
page--foo-bar-baz.tpl.php
/foo/bar/baz
特定のコンテンツを に表示する/identifier
場合は、条件付きでコンテンツを含めるか、コンテンツをコピーするかの 2 つのオプションがあります。何を選択するかは、状況によって異なります。
条件付きで含める: 内部page.tpl.php
:
<div class="footer">
<?php if (arg(0) == "advertsindex"): ?>
<?php print theme("advertsindex_disclaimer"); ?>
<?php endif; ?>
</div>
オーバーライド: を導入page--advertsindex.tpl.php
:
<div id="content">
<?php print $content ?>
</div>
いつ何を選択するか:
次の場合にのみ、条件付きインクルードまたは条件付きレンダリングを使用します。
- 含まれるまたは除外されるコンテンツは小さく、共有されます。`[フロントページ HTML の大きな 20 行以上][通常の HTML] のようなパターンは非常に悪いものです。
- 含まれるコンテンツには、あらゆる種類の派手な新しい変数を引き込む必要があります。 のようなパターンは本当に悪いです。Drupals のテーマ システムはプッシュ (テーマがモジュールから変数を取得) であり、決してプル (テーマはモジュールでパラメーターを要求) ではありません。
それ以外の場合は、オーバーライドを使用します。はい、それには多くの重複が含まれますが、それは設計によるものであり、Drupal のデフォルトのプラクティスとして受け入れられています。20 以上のファイルで一部の HTML を変更する必要がないように、できるだけ遅く「分割」または「コピー」してください。
経験則として、条件文は数行のみにする必要があり、親で使用できない変数は決して必要としません。