Usando Blocos Dinâmicos com a Classe FastTemplate (Parte 2)

Essa forma é um pouco mais complexa: a de blocos dinâmicos ANINHADOS. Às vezes tornar-se necessário a sua criação, onde teremos a existência de N arquivos: um script PHP principal, um template principal, e mais N templates ANINHADOS dentro desse principal. Apesar desse recurso, vocês verão que apenas 1 aninhado já resolve muita coisa.

[ Hits: 21.947 ]

Por: Olavo Alexandrino em 23/07/2003 | Blog: http://oalexandrino.com


O script



Vamos ver agora como a classe FastTemplate preencherá esses templates.

<?php
/*
Para o uso de Templates aninhados. Podemos mesclar um dinâmico com um duplo. Não podemos utilizador dois templates dinâmicos um dentro do outro. O mais externo será o dinâmico e o interno o duplo, aquele que necessita de 2 arquivos.
*/

include("class.FastTemplate.php3");
$template = new FastTemplate('.');

// definimos o template dinâmico apontando para "pagina.html"
$template->define(array("pagina" => "pagina.html"));

// definimos o tipo dinâmico para esse template "pagina"
$template->define_dynamic("dinamico", "pagina");

// definimos o template duplo para a mesma página do dinâmico
// e o segundo arquivo para uma página extra
$template->define(array('interno' => 'pagina.html', 'linhas' => 'extra.html'));

// primeiro devemos executar o interno
$query = mysql_query("SELECT ID_ARTISTA, NOME_ARTISTA from artistas");
while (list($ID_ARTISTA, $NOME_ARTISTA) = mysql_fetch_row($query)) {
    $template->assign('{ID_ARTISTA2}',$ID_ARTISTA);
    $template->assign('{NOME_ARTISTA2}',$NOME_ARTISTA);      
    $template->parse('{LINHAS}','.linhas');            
}
?>

Veja que interno aponta para a página principal, que por sua ver é definido também o externo que aponta para o arquivo externo. A constante LINHAS é substituída.

<?php
// segundo devemos executar o externo
$query = mysql_query("SELECT ID_ARTISTA, NOME_ARTISTA from artistas");
while (list($ID_ARTISTA, $NOME_ARTISTA) = mysql_fetch_row($query)) {
    $template->assign('{ID_ARTISTA}', $ID_ARTISTA);
    $template->assign('{NOME_ARTISTA}', $NOME_ARTISTA);
    $template->parse('{UM}', '.dinamico');        
}
?>

Depois fazemos com o externo, o da página principal como não soubéssemos da existência do outro.

<?php
// só haverá uma saída que é para o template dinâmico
// como o interno aponta para a mesma página, não precisamos imprimir seu conteúdo
$template->parse('SAIDA', 'pagina');
$template->FastPrint('SAIDA');
?>

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Blocos dinâmicos
   3. O script
   4. Resultados
Outros artigos deste autor

Polimorfismo e PHP 5

Paginando resultados com a classe Generic Easy Pagination

Usando Blocos Dinâmicos com a Classe FastTemplate (Parte 1)

A simples classe Date Operations

Leitura recomendada

Criando um ambiente de desenvolvimento web livre com Eclipse e PHP

Aumente sua produção em PHP

PHP5 Orientado a Objetos: Visibilidade, herança e extensões de classes

Polimorfismo e PHP 5

Relatórios com PHP e XSLT - Conceitos iniciais e utilização básica

  
Comentários
[1] Comentário enviado por ramon_ em 15/05/2004 - 16:09h

Olavo Alexandrino, fiz de acordo com o tutorial escrito por voce, alias muito bem escrito, porem a tabela nao apararece todos oas campos do banco de dado, somente o ultimo o que pode ser?

[2] Comentário enviado por oalexandrino em 15/05/2004 - 20:59h

para cada campo do BD vc deve definir uma constante para o template...

como nome tem {NOME}, outros campos devem tb ter!

;)

[3] Comentário enviado por removido em 18/10/2006 - 16:25h


[4] 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

http://tonda.czechit.net/2007/07/fasttemplates-optimized-for-php5.html

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

falow
t+

[5] Comentário enviado por comfaa em 28/10/2008 - 13:01h

muito legal !!!


Contribuir com comentário