2009-11-17 16 views
0

En termes de:Vaut-il mieux utiliser un fichier modèle distinct pour la page d'accueil?

  1. Vitesse
  2. traitement requis (qui influencera la vitesse)
  3. Les normes suivantes

Laquelle des deux méthodes suivantes seront mieux?

Je souhaite créer une mise en page générale, mais la page d'accueil sera différente de l'aspect normal.

Méthode 1

Création d'un fichier page.tpl.php normal, mais avec le code suivant dans le:

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

Méthode 2

Creat deux pages distinctes, à savoir page.tpl.php et front.tpl.php. Le code sera dupliqué, mais la page d'accueil et les autres pages auront chacune leur propre fichier dédié.

Répondre

3

Je dirais que la méthode 2 est meilleure. Je pense que la rapidité ne sera pas affectée de quelque façon que ce soit, et il n'y a pas de normes strictes à ce sujet, mais il est déconseillé de ramifier excessivement les fichiers modèles.

Cependant, je serais intéressé de voir quel est le code spécifique de la page d'accueil. Drupal donnera à la première page une classe css «frontale» afin qu'elle puisse être stylisée différemment et que les blocs puissent être créés pour ne s'afficher que sur la première page. Il se peut donc que vous n'ayez pas besoin d'un modèle de page de garde spécifique.

+0

La structure de la page d'accueil est complètement différente. Je verrai si je peux poster un lien ici une fois le site fait. Je vais probablement aller avec la méthode 1, parce que je ne veux pas devoir changer info, ou d'autres choses dans deux fichiers de modèles, même si les changements sont extrêmement improbables. – coderama

+0

Se brancher sur un modèle comme celui-ci est mauvais car cela ne fonctionne pas très bien si vous avez activé certaines des fonctionnalités de cache plus agressives de Drupal (à la fois le noyau et la contribution). Si, une fois le cache effacé, la page d'accueil est la page suivante à charger, alors * chaque * page ressemblera à la première page, et vice versa. –

+0

Il est plus conventionnel d'avoir des fichiers séparés, et la convention suivante aide les autres développeurs à se mettre au courant de ce que vous avez construit. – Grayside

2

Je s'attaquer à vos points dans l'ordre inverse:

NORMES

Je crois que la méthode standard acceptée (au moins lorsque l'on travaille avec des thèmes à base zen) est de créer un modèle spécifique. En fait, vous n'avez pas besoin de mettre une fonction de thème supplémentaire pour que cela fonctionne, comme si vous l'appelez page-front.tpl.php il sera utilisé exclusivement pour la page d'accueil. Cela ne s'applique bien sûr que si vous avez vraiment besoin d'un modèle séparé (voir la réponse de Jeremy à ce sujet).

REQUISE TRAITEMENT

Je ne pense pas qu'il y ait une différence perceptible intimement liée à la nature des deux méthodes différentes. Tout le reste étant le même, c'est toujours à l'ordinateur d'ouvrir un fichier (le template) et de traiter le PHP, qu'il s'agisse du même fichier ou d'un autre. La solution # 1 a une déclaration if plus mais ... fait-elle vraiment une différence?

VITESSE

Si vous êtes vraiment grand besoin d'optimisation, je lis (si je ne me trompe pas sur Pro Drupal Development) qui thématisation une page via un modèle est temps 5x plus lent que de le faire au moyen d'un fonction, donc vous pourriez envisager cette solution aussi, bien que cela n'apporterait un avantage que si la page d'accueil n'est pas cacheable, je crois.

HTH!