O uso de templates em PHP

elm

Qualquer webmaster que enfrentou a missão de manter um site de médio a grande porte, sabe a dificuldade que isso significa, principalmente no que diz respeito a relação entre o design e a programação. Este artigo nos mostra uma simples classe de template para PHP.

[ Hits: 39.017 ]

Por: Elton Luís Minetto em 25/10/2003


Aplicando templates



Exemplo de template:

<STYLE type=text/css>
BODY {
    COLOR: black; FONT-FAMILY: Verdana,Helvetica, Geneva, Arial,  sans-serif; FONT-SIZE: 14px; FONT-STYLE: normal; FONT-WEIGHT: normal; TEXT-DECORATION: none
}
text {
    COLOR: black; FONT-FAMILY: Verdana, Helvetica, Geneva, Arial, sans-serif; FONT-SIZE: 12px; FONT-STYLE: normal; FONT-WEIGHT: normal; TEXT-DECORATION: none
}
bar {
    COLOR: yellow; FONT-FAMILY: Verdana, Helvetica, Geneva, Arial, sans-serif; FONT-SIZE: 11px; FONT-STYLE: normal; FONT-WEIGHT: bold
}
INPUT {
    BACKGROUND-COLOR: #ffffe0; COLOR: blue; FONT-FAMILY: Verdana, Geneva, Arial, Helvetica, sans-serif; FONT-SIZE: 11px
}
SELECT {
    BACKGROUND-COLOR: #ffffe0; COLOR: blue; FONT-FAMILY: Verdana, Geneva, Arial, Helvetica, sans-serif; FONT-SIZE: 11px
}
TEXTAREA {
    BACKGROUND-COLOR: #ffffe0; COLOR: blue; FONT-FAMILY: Verdana, Geneva, Arial, Helvetica, sans-serif; FONT-SIZE: 11px
}
INPUT.bt {
    BACKGROUND-COLOR: #00008b; BORDER-BOTTOM: white 1px solid; BORDER-LEFT: white 1px solid; BORDER-RIGHT: white 1px solid; BORDER-TOP: white 1px solid; COLOR: yellow; FONT-FAMILY: Verdana, Geneva, Arial, Helvetica, sans-serif; FONT-SIZE: 10px; TEXT-ALIGN: center
}
FORM {
    DISPLAY: inline
}
A {
    COLOR: blue; FONT-FAMILY: Verdana, Geneva, Arial, Helvetica, sans-serif; FONT-SIZE: 12px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A:hover {
    COLOR: black; TEXT-DECORATION: underline
}
</STYLE>

<BODY bgColor="#FFFFFF">
<p> </p>
<p> </p>
<center>
   <table border="0">
   <tr>
      <td align="right" bgcolor="#0b740b">
         <table border="0" cellspacing="0" cellpadding="0">
         <tr bgcolor="#0b740b">
            <td width="100%"><font color="white" size="2"><b>#TITULO </b></font></td>
         </tr>
         </table>
         <table border="3" bordercolor="#0b740b" cellspacing="0" cellpadding="0">
         <tr bgcolor="silver">
            <td width="100%">
               #TABLE_CENTRAL
               #TABLE_FINAL
            </td>
         </tr>
         </table>
      </td>
   </tr>
   </table>
</center>
</body>
</html>

Na verdade o template é um simples arquivo HTML com apenas algumas modificações. As palavras começando com # (#TITULO, #TABLE_CENTRAL, #TABLE_FINAL) são as partes do modelo que serão alteradas pelo script PHP.

No exemplo acima, caso se precise alterar as configurações de bgcolor ou alguma outra na sessão <STYLE>, todas as páginas que usam o modelo sofrem as alterações.

No exemplo abaixo, o script PHP que usa o template:

<?php
include("template.lib");
$TITULO = "Página Exemplo";
$TABLE_CENTRAL = '
<table border="0">
<tr>
   <td>Teste de Tabela</td>
</tr>
</table>
';
$TABLE_FINAL = '
<table border="0">
<tr>
   <td>Sair</td>
</tr>
</table>
';
ReadTLE("teste.tle");
?>

O script acima é apenas um exemplo do que pode-se fazer com um pouco de criatividade. A instrução ReadTLE("teste.tle"); faz a mesclagem dos dados usando as variáveis do modelo (#TITULO,...) e a imprime para o navegador.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Aplicando templates
   3. Um exemplo mais avançado
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Lista de extensões preferidas para Joomla!

Criando um blog com o CakePHP 2.2.1

Funções da categoria Miscelânea do PHP

Desenvolvendo um componente de calendário dinâmico em PHP

Debian com Apache, PHP4, PHP5 e MySQL

  
Comentários
[1] Comentário enviado por fabio em 25/10/2003 - 03:40h

É sempre bom conhecermos uma classe de template alternativa. Sempre uso a FastTemplate.

[2] Comentário enviado por removido em 25/10/2003 - 20:41h

O grande problema é não consegue-se encontrar essa classe no site indicado por redireciona para o site do tal Sunil Baek em japonês ou koreano sei lá.
Poderia ser colocado um link alternativo aqui ou mesmo publicada a classe!

[3] Comentário enviado por Oki em 26/10/2003 - 15:30h

Bom, eu gosto de usar Smarty Templates, http://smarty.php.net, gosto do smarty por causa do esquema de cache que ele tem :-)

[]'s
Celso Goya
moinho.net

[4] Comentário enviado por Ragen em 26/10/2003 - 20:48h

Celso,

Escrevi um artigo sobre o uso do cache na FastTemplate, assim como a Smarty agora ela suporta cache... Confira os artigos mais antigos ou na própria sessão do site sobre a FastTemplate CVS revision. 1.2.0

[]`s

Ragen

[5] Comentário enviado por elm em 27/10/2003 - 13:39h

Um endereço alternativo para a classe é <br>
http://www.unochapeco.edu.br/saa/templates/template.lib<br>;

[6] Comentário enviado por bobfrank em 03/11/2003 - 23:25h

Só pra ter uma ideia, descolei neste forum mais de 70 projetos de templates
e uma interessante discussão sobre eles.
Assim é possivel comparar tecnologias e escolher a que mais lhe agrade:
http://www.sitepointforums.com/showthread.php?threadid=123769&highlight=php+templates


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts