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
        (~22 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
        (~22 anos atrás)
      
    
                  Muito legal o funcionamento, mas seria legal vc postar exemplos de utilização...
              
      
        05/12/2003 4:30pm
        (~22 anos atrás)
      
    
