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: 37.383 ]

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

PHP Orientado a Objetos

Migração de dados no Joomla

Requisições assíncronas em PHP usando AJAX - Parte I

Instalação do MediaWiki em uma Project web do SourceForge

Gerando gráficos com PHP e highcharts.com

  
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
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts