Utilizando a classe BasicTemplate
Como já vimos anteriormente, para definir o bloco estático(principal) da classe, utilizamos a função setMain().
Na utilização de blocos dinâmicos não muda muita coisa. As maiores mudanças são nas chamadas a blocos dinâmicos e no tratamento de variáveis.
A BasicTemplate utiliza o conceito que variáveis do bloco estático servem apenas para o bloco estático e variáveis de blocos dinâmicos servem apenas para o bloco a que pertencem.
Neste conceito, um script que tem a variável TITULO no bloco estático pode utilizar o mesmo nome para um bloco dinâmico, com um valor independente.
O modo que a BasicTemplate trata o "parse" dos blocos dinâmicos é bem diferente do que a FastTemplate utiliza, que é um tanto quanto complicado.
A cada chamada de um parse() para um bloco dinâmico da BasicTemplate, ela trata de substituir todas as variáveis e incluir no output do bloco dinâmico o valor do arquivo de template com variáveis substituídas.
Segue um exemplo:
Abaixo o conteúdo do arquivo principal.tpl:
E o conteúdo do arquivo valores.tpl:
O resultado seria o seguinte vendo em HTML:
Na utilização de blocos dinâmicos não muda muita coisa. As maiores mudanças são nas chamadas a blocos dinâmicos e no tratamento de variáveis.
A BasicTemplate utiliza o conceito que variáveis do bloco estático servem apenas para o bloco estático e variáveis de blocos dinâmicos servem apenas para o bloco a que pertencem.
Neste conceito, um script que tem a variável TITULO no bloco estático pode utilizar o mesmo nome para um bloco dinâmico, com um valor independente.
O modo que a BasicTemplate trata o "parse" dos blocos dinâmicos é bem diferente do que a FastTemplate utiliza, que é um tanto quanto complicado.
A cada chamada de um parse() para um bloco dinâmico da BasicTemplate, ela trata de substituir todas as variáveis e incluir no output do bloco dinâmico o valor do arquivo de template com variáveis substituídas.
Segue um exemplo:
<?php include "class.BasicTemplate.php"; $valores = array("Valor1","Valor2","Valor3"); $tpl = new BasicTemplate('./tpl'); // como já sabemos, instancia a classe $tpl->setMain('principal.tpl'); // define o bloco estático ou principal $tpl->setDynamic('valores','valores.tpl'); // assina a variável TITULO do bloco principal $tpl->assign('TITULO','Exemplo da classe BasicTemplate'); foreach ($array as $key => $value) { // para cada valor da array // define a variavel titulo para o bloco dinâmico $tpl->assign("TITULO",$value,"valores"); $tpl->parse("valores"); // joga os valores do arquivo de bloco dinâmico para o buffer. } // joga o conteúdo de todo o bloco estático e seus blocos dinâmicos para o buffer. $tpl->parse(); // imprime o bloco estático e todos os blocos dinâmicos na página PHP $tpl->output(); ?>
Abaixo o conteúdo do arquivo principal.tpl:
<html> <head> <title>{TITULO}</title> </head> <body> Este é meu primeiro script com a classe BasicTemplate.<br> Funcionou corretamente. <table> <tr> <td>Valor</td> </tr> {dynamic name=valores} </table> </body> </html>
E o conteúdo do arquivo valores.tpl:
<tr> <td>{TITULO}</td> </tr>
O resultado seria o seguinte vendo em HTML:
<html> <head> <title>'Exemplo da classe BasicTemplate</title> </head> <body> Este é meu primeiro script com a classe BasicTemplate.<br> Funcionou corretamente. <table> <tr> <td>Valor</td> </tr> <tr> <td>Valor1</td> </tr> <tr> <td>Valor2</td> </tr> <tr> <td>Valor3</td> </tr> </table> </body> </html>
Muito bom esse artigo! Mas eu acho que o mais completo dos templates é o Smarty...
26/12/2003 9:01pm
(~21 anos atrás)
Bom primeiro so pra vc corrigir um erro simples:
"foreach ($array as $key => $value) { // para cada valor da array
"
no lugar de array vc esqueceu de mudar o array para o nome que vc inicializou no começo do script $array tem q ser $valores
Victor li o seu artigo e gostei muito sobre a utilização dessa classe mas concordo com o Diego seria melhor se vc colocasse exemplos disso na pratica.......mesmo assim agradeço e vou tentar estudar mas afundo essa classe que é bem util.
"foreach ($array as $key => $value) { // para cada valor da array
"
no lugar de array vc esqueceu de mudar o array para o nome que vc inicializou no começo do script $array tem q ser $valores
Victor li o seu artigo e gostei muito sobre a utilização dessa classe mas concordo com o Diego seria melhor se vc colocasse exemplos disso na pratica.......mesmo assim agradeço e vou tentar estudar mas afundo essa classe que é bem util.
10/12/2003 7:05am
(~21 anos atrás)
Muito legal o funcionamento, mas seria legal vc postar exemplos de utilização...
05/12/2003 4:30pm
(~21 anos atrás)