0

の面では:

  1. スピード
  2. 必要な処理 (速度に影響します)
  3. 次の基準

次の 2 つの方法のうち、どちらが優れているでしょうか。

一般的なページ レイアウトを作成したいのですが、フロントページの外観が通常のルック アンド フィールとは異なります。

方法 1

通常の page.tpl.php ファイルを作成しますが、次のコードが含まれています。

.....
<body>
  <?php if (isFront()) { 
          // lots of stuff for the frontpage
        }
        else 
        {
          // lots of stuff for the other pages
        }
  ?>
</body>

方法 2

page.tpl.php と front.tpl.php という 2 つの異なるページを作成します。コードは複製されますが、フロントページと他のページにはそれぞれ専用のファイルがあります。

4

2 に答える 2

3

方法2の方がいいと思います。どちらの方法でも速度に大きな影響はないと思います。厳密な基準はありませんが、テンプレートファイルを過度に分岐することはお勧めしません。

ただし、ホームページ固有のコードが何であるかを確認したいと思います。Drupalはフロントページに「フロント」cssクラスを与えるので、スタイルを変えたり、フロントページにのみ表示するようにブロックを作成したりできます。したがって、特定のフロントページテンプレートは必要ない場合があります。

于 2009-11-17T06:24:15.060 に答える
2

私は逆の順序であなたのポイントに取り組みます:

基準

標準的に受け入れられている方法 (少なくとも zen ベースのテーマを扱う場合) は、特定のテンプレートを作成することだと思います。実際には、それを機能させるために追加のテーマ機能を配置する必要はありません.名前を付けるとpage-front.tpl.php、フロントページ専用に使用されます. もちろん、これは本当に別のテンプレートが必要な場合にのみ適用されます (これに関する Jeremy の回答を参照してください)。

必要な処理

2 つの異なる方法の性質に密接に関連する、認識できる違いはないと思います。それ以外はすべて同じですが、これが同じファイルであるか別のファイルであるかにかかわらず、コンピューターがファイル (テンプレート) を開いてその中の PHP を処理することは依然として問題です。解決策 1 にはifさらに説明がありますが、実際に違いはありますか?

速度

最適化が本当に必要な場合は、(Pro Drupal Developmentで間違っていなければ)、テンプレートを介してページをテーマ化するのは、関数を介して行うよりも 5 倍遅いことを読んだので、その解決策も検討してください。これは、ホームページがキャッシュ可能でない場合にのみメリットがあると思います。

チッ!

于 2009-11-17T16:01:55.727 に答える