[SP-pm] Template Toolkit - Estudando
André Garcia Carneiro
andre.garcia.carneir at terra.com.br
Wed Nov 12 08:26:30 PST 2008
---------- Cabeçalho original -----------
De: saopaulo-pm-bounces+andre.garcia.carneir=terra.com.br em pm.org
Para: saopaulo-pm em mail.pm.org
Cópia:
Data: Wed, 12 Nov 2008 13:37:30 -0200
Assunto: [SP-pm] Template Toolkit - Estudando
> Estou estudando Template Toolkit, e não estou entendendo algumas coisas do
> manual.
>
> O manual diz mais ou menos assim:
> *Um número de diretrizes orientadoras especiais são fornecidas, como o "
> INSERT" , " INCLUDE" e " PROCESS" , de que permita que o índice seja
> acumulado componentes menores do molde. Isto permite uma aproximação modular
> a construindo um Web site ou o outro repositório satisfeito, promovendo o
> reusability, consistência do cruz-local, facilidade da construção e
> subseqüente manutenção. Elementos comuns tais como encabeçamentos, pés de
> página, barras de menu, as tabelas, e assim por diante, podem ser criadas
> como as limas de molde separadas que podem seja processado então em outros
> originais como necessário. Todos definiram as variáveis são herdadas por
> estes moldes junto com adicional " local" os valores especifico.
>
> [% PROCESS header
> title = "The Cat Sat on the Mat"
> %]
>
> [% PROCESS menu %]
>
> A posição do felino faltante tem sido estabelecida agora. Obrigado para seu
> auxílio.
>
> [% INSERT legal/disclaimer %]
>
> [% PROCESS footer %]
>
> Você pode igualmente definir um molde como um BLOCO dentro da mesma lima e
> PROCESSE-A apenas como toda a outra lima de molde. Isto pode ser inestimável
> para acumular elementos repetitivos tais como tabelas, menus, etc.
>
> [% BLOCK tabrow %]
> <tr><td>[% name %]</td><td>[% email %]</td></tr>
> [% END %]
>
> <table>
> [% PROCESS tabrow name="tom" email="tom em here.org" %]
> [% PROCESS tabrow name="dick" email="disk em there.org" %]
> [% PROCESS tabrow name="larry" email="larry em where.org" %]
> </table>*
>
> Eu não entendi essa parte das tabelas, isso vai resultar em que ?
> *[% PROCESS tabrow name="tom" email="tom em here.org" %]
Você definiu no bloco 'tabrow' o modelo das linhas da sua tabela
[% BLOCK tabrow %]
<tr><td>[% name %]</td><td>[% email %]</td></tr>
[% END %]
Repare que aqui foram definidas duas variáveis: 'name' e 'email'.
Agora essa linha abaixo pede para você processar os blocos passando as variáveis que você definiu no bloco
'tabrow':
[% PROCESS tabrow name="tom" email="tom em here.org" %]
Traduzindo para linguagem de humanos(mais ou menos)...
Processe o bloco 'tabrow', onde os parâmetros são name='tom' e email = "tom em here.org".
Isso parecido como se você passasse o seu 'stash'(baldão de variáveis) para o objeto Template processar através
método 'process', por exemplo, suponhamos essa situação no template:
[% FOREACH user IN users %]
<tr><td>[% user.name %]</td><td>[% user.email %]</td></tr>
[%END%]
Pra mandar isso através do seu código, você faria algo do tipo:
<pseudocode>
use strict;
use Template;
#Criando a estrutura de dados do meu stash. Meu stash = $users
my $users = [{ name => 'tom', email => 'tom em here.org'}
,{name => 'dick', email => 'dick em there.org'}
];# e assim por diante...
my $tt = Template->new('seus parametros aqui');
$tt->process('meutemplate.tt',$users);
</pseudocode>
Espero ter ajudado você a entender o que se passa...
>
> *Para ser mais claro o que eu sei fazer de Template Toolkit é criar um
> arquivo chamado .tt, index.tt outro chamado header e outro chamado footer.
> Dentro do index.tt eu ponho o conteudo do site, exemplo:
> *[% INCLUDE header %]
> <p>Esse site é bonito</p>
> [% INCLUDE footer %]*
>
> Dentro do header eu coloco todo cabeçalho do site, exemplo:
> *<html>
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
> <title>Residencial Lar dos Sonhos de Alice</title>
> <link rel="stylesheet" type="text/css" href="estilo.css" />
> </head>
> <body>*
>
> Dentro do footer eu coloco tudo depois do corpo do site, geralmente os
> copyrights, exemplo:
> *</body>
> <a href=frame02.html>Voltar</a>
> <p>Power by Nasa</p>
> </html>*
>
> Ae forma Cabeça( header ), conteúdo do site ( index.tt ) e o resto do site
> (footer).
>
> Obrigado []'s
> --
> print
> "\x54\x68\x65\x20\x53\x69\x6c\x65\x6e\x74\x20\x47\x75\x61\x72\x64\x69\x61\x6e",$/
>
--
André Garcia Carneiro
Developer(Perl/PHP)
Member of "São Paulo Perl Mongers" - http://sao-paulo.pm.org
More information about the SaoPaulo-pm
mailing list