+1

Organizando projetos com a classe FastTemplate (parte 2)

criado por Fábio Berbert de Paula em 19/07/2002 8:14pm
Outra situação muito comum na programação com uso de templates é o uso de quantidade indefinida de variáveis. Uma vez que você busca dados a partir de uma tabela de banco de dados, não se pode prever o número de registros serão retornados ao seu script, daí surge a necessidade do uso de um template duplo, ou seja, um template para a parte estática do HTML e outro para a parte indefinida (dinâmica).

No exemplo ilustrado neste artigo, vamos definir um array com alguns elementos, já que a conexão com o banco de dados tornaria nossa leitura mais complexa e prolongada. Faremos de conta que este array foi obtido a partir de consultas ao seu banco de dados favorito, ok ?

<!-- modeloDuplo.php -->
<?php
include 'class.FastTemplate.php3'; // carregar classe

$model = new FastTemplate('./modelos'); // repositório de modelos

$model -> define (
   array ( 'pagina' => 'modeloDuplo.html',
           'linhas' => 'itemModeloDuplo.html'
         )
); // definimos um template para a parte estática e outro que será
   // processado para cada linha de um vetor

$vetorFazDeConta = array (
              "Fábio B. de Paula"     => "fabio@vivaolinux.com.br",
              "Zé Menino da Lagoa"    => "zemenino@vivaolinux.com.br",
              "Florentina de Jesus"   => "florentina@vivaolinux.com.br",
              "Marcolino Pão-e-Vinho" => "marcolino@vivaolinux.com.br"
);

reset($vetorFazDeConta);
while ( list($nome,$email) = each($vetorFazDeConta) ) {
   $model->assign('{NOME}',$nome);   // as variáveis {NOME} e {EMAIL} estarão
   $model->assign('{EMAIL}',$email); // definidas no template que executa uma vez
                                   // para cada linha do vetor

   $model->parse('{LINHAS}','.linhas');
   // a variável {LINHAS} aparecerá no template estático do HTML e será substituído
   // pela concatenação de cada processamento sobre o handle ".linhas". Note que
   // existe um '.' antes do nome do handle, para dizer ao FastTemplate que este
   // processamento trata-se de uma concatenação
}


$model->assign('{TITULO}','Exemplo de modelo dinâmico do FastTemplate');
// a variável {TITULO} é estática e está no template estático

$model->parse('OUTPUT','pagina');
$model->FastPrint('OUTPUT');
?>
<!-- fim -- >

Comentários:

Mostrando 1 - 2 de 2 comentários
Eduardo Malta disse:
Falameu amigo?? estou testatndo o FastTemplate ma sdá um erro :

Fatal error: Cannot redeclare clear_parse() in c:\php\includes\class.FastTemplate.php3 on line 636

fiz tudo como vc falo mas naum funfo... se poder dar uma lhadinha agradeço...

Eduardo Malta
28/02/2005 9:15am (~20 anos atrás)

leo genilhu disse:
cara parabens pelos artigos to começando com template agora e vou ultilizar fast no proximo projeto.
mas ainda tenho algumas duvidas de funcionabilidade como por exemplo as classes onde utilizo cgi para montar checkbox etc como ficaria isto ? da mesma forma que um banco ?
em geral seus artigos me deram um boa clareada ...
FALEU .
26/07/2002 2:40pm (~22 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)