Pergunta

Em termos de:

  1. Velocidade
  2. Processamento necessário (que influenciará a velocidade)
  3. Seguintes padrões

Qual dos dois métodos a seguir será melhor?

Quero criar um layout de página geral, no entanto, a página frontal parecerá diferente da aparência normal.

Método 1

Criando um arquivo normal.tpl.php, mas com o seguinte código nele:

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

Método 2

Crie duas páginas distintas, nomeadamente Page.TPL.PHP e FRONT.TPL.PHP. O código será duplicado, mas a página frontal e outras páginas terão seu próprio arquivo dedicado.

Foi útil?

Solução

Eu diria que o método 2 é melhor. Eu acho que a velocidade não será muito afetada de qualquer maneira, e não há padrões rígidos sobre isso, mas a ramificação excessiva nos arquivos de modelo é desencorajada.

No entanto, eu estaria interessado em ver qual é o código específico da página inicial. O Drupal dará à primeira página uma classe CSS "frontal" para que possa ser de maneira diferente e os blocos possam ser criados para exibir apenas na primeira página. Portanto, pode não haver uma necessidade de um modelo específico de primeira página.

Outras dicas

Vou abordar seus pontos na ordem inversa:

PADRÕES

Acredito que o método aceito padrão (pelo menos ao trabalhar com temas baseados em Zen) é criar um modelo específico. Você realmente não precisa colocar nenhuma função de tema adicional para que funcione, como se você o nome page-front.tpl.php Ele será usado exclusivamente para a primeira página. É claro que isso se aplica apenas se você realmente precisar de um modelo separado (consulte a resposta de Jeremy sobre isso).

Processamento necessário

Eu não acho que exista uma diferença perceptível intimamente conectada à natureza dos dois métodos diferentes. Todo o resto é o mesmo, ainda é uma questão para o computador abrir um arquivo (o modelo) e processar o PHP nele, seja o mesmo arquivo ou outro. Solução nº 1 tem um if Declaração mais, mas ... realmente faz a diferença?

RAPIDEZ

Se você realmente precisa de otimização, eu leio (se não estiver errado em Desenvolvimento Pro Drupal) que o temas de uma página por meio de um modelo é 5x vezes mais lento do que fazê -lo por meio de uma função, portanto, você pode considerar essa solução, embora isso apenas traria um benefício se a página inicial não for cache, acredito.

HTH!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top