Esse artigo tem como finalidade explicar a utilização da Classe FastTemplate para a utilização de templates dinâmicos em PHP. O chamado template dinâmico é aquele que só utiliza 2 arquivos: um PHP e outro o template propriamente dito. Desse modo ficará mais fácil a implementação de projetos onde o programador e o designer trabalharão de forma quase que totalmente separada.
Depois que você descompactar os arquivos baixados, configure um diretório
de includes no seu servidor a partir do arquivo de configuração do PHP
(php.ini), para que qualquer que seja o local que você esteja não precise
colocar o caminho completo da classe.
Passo 3 - Utilização
Vamos criar o arquivo: cria_template.php como exemplo. Coloque uma
include para a classe para que TODOS os métodos da classe estejam
disponíveis no arquivo cria_template.php:
<?php
# include para o Classe FastTemplate
include ("class.FastTemplate.php3");
?>
Passo 4 - Instanciação
No mesmo arquivo (cria_template.php), crie uma instância para um novo objeto.
<?php
# cria uma nova Instância de objeto para a Classe
$template = new FastTemplate('.');
?>
O parâmetro => '.' deve ser o caminho onde estará os templates. Nesse
caso, na mesma pasta do arquivo "cria_template.php". Se, por acaso fosse
no diretório modelos deveria obedecer a sintaxe:
<?php
$template = new FastTemplate('modelos');
?>
Passo 5 - Objeto
Criar o objeto de template referenciando o arquivo de template:
No caso acima o nome "pagina" será a referência do objeto para o
arquivo de template "pagina.tpl". A extensão poderia ser HTML, mas é
aconselhável manter o "*.tpl" para sabermos que é um template.
Passo 6 - Template dinâmico
Devemos agora criar outro template: O dinâmico. Aquele que considera
um bloco dinâmico para que seja usado apenas uma arquivo de template.
<?php
$template->define_dynamic("linhas","pagina");
# associa o modelo dinâmico "linhas" para o template página
# o nome "linhas" referes-e a um bloco dinâmico do mesmo nome na
# página do template definida em "pagina.tpl"
?>
Passo 7 - Exibição dos dados
Construir um loop de exibição de dados do bloco dinâmico na página de
Template. No caso usei o MySQL, mas pode-se usar qualquer banco de dados
ou até mesmo, por exemplo, um loop para construção de um depo down de
mês/dia/ano.
<?php
$dados=mysql_query("SELECT nome,fone from tabela ORDER BY nome");
while (list($nome,$fone)=mysql_fetch_row($dados)) {
$template->assign(array("{NOME}" => $nome, {FONE}" => $fone ));
$template->parse('LINHAS','.linhas');
}
?>
No caso acima o template dinâmico tem apenas duas CONSTANTES, que são
campos retornados de uma pesquisa SQL feita no MySQL e armazenada na
variável $dados.
Deverá ser feita uma atribuição aos valores das contantes: {NOME} e
{FONE}. A classe percorrerá o arquivo "pagina.tpl" e onde encontrar
essas constantes a substituirá pelo conteúdo retornado pela consulta SQL.
Depois é feita uma "concatenação" dos resultados da pesquisa no bloco
dinâmico "linhas" definido no passo 6. O 1° argumento ,'LINHAS',
pode ser qualquer nome, mas é preferível colocar nomes sugestivos.
Passo 8 - Atribuição de resultados
Agora deverá ser feita a atribuição do resultado do bloco no primeiro
template que é a página completa do Template:
O 1° argumento ,'SAIDA', pode ser qualquer nome, mas é preferível
colocar nomes sugestivos.
Passo 9 - o arquivo pagina.tpl
Esse arquivo não deverá conter nenhuma TAG PHP, deverá conter apenas
HTML puro e logicamente as constantes definidas na página
"cria_template.php". No caso apresentado será exibido os dados numa
tabela de forma que a parte dinâmica, as linhas, estarão definidas
DENTRO do BLOCO DINÂMICO. O bloco dinâmico é delimitado pelos
comentários HTML!
<!-- BEGIN DYNAMIC BLOCK: linhas -->
...corpo...
<!-- END DYNAMIC BLOCK: linhas -->
Deverá ser seguida minuciosamente as palavras do comentários. Ou seja,
é case sensitive. Por isso mesmo coloque tudo em MAIÚSCULA!!
Nota: se você teve dificuldade no entendimento desse artigo, é
aconselhável que primeiramente dê uma olhada nos artigos do Fábio
Berbert de Paula, são muito bons!!
[1] Comentário enviado por fabio em 29/06/2003 - 04:34h
Essa classe fastTemplate realmente é fantástica, deixa se código PHP limpo e enxuto, tornando seu sistema incomparavelmente melhor que um sistema "código lixão", que é aquela mistura de PHP com HTML que você não se encontra no meio do ninho de magafa-gafa que foi criado.
Para quem não sabe, o Viva o Linux é 100% programado em PHP em conjunto com a classe fastTemplate, como diria o coder nerd usando templates:
[2] Comentário enviado por redstyle em 17/09/2004 - 22:09h
Blz,
Gostei disso.
Consegui fazer o uso de ifs no meu código:
$num = 2;
$teste = "Rodrigo";
$teste2 = "lalalalalalala";
$greeting = 'Olá mundo ! Estamos no phpbrasil.com :)';
if ($num == 5){
$model->assign('{TESTE}',$teste);
} else {
$model->assign('{TESTE}',$teste2);
}
[5] Comentário enviado por wilbil em 26/01/2008 - 12:27h
e ai galera para quem como eu estava sofrendo com o projeto ja pençando em arrumar a classe do fasttemplate por conta própria achei um site que tem a classe arrumada para php5
vamos la agradeçam ao cara eu fui o primeiro ele merece
falo isso pois tem uma empresa onde trabalho que foram varios projetos
e o principal com 7 anos de desenvolvimento imagina migrar tudo isso