[SP-pm] Template Toolkit - Estudando

breno breno at rio.pm.org
Wed Nov 12 08:15:47 PST 2008


Acho que a principal diferença entre eles é:

INSERT - insere o conteúdo do arquivo especificado exatamente como
está, sem qualquer tipo de tratamento.

INCLUDE - insere o conteúdo do arquivo especificado mas processa ele
antes, interpolando variáveis e interpretando códigos de template

PROCESS - igual ao include, mas não localiza as variáveis antes de
processar o template.

Pra ajudar a entender essa diferença, considere o seguinte template de exemplo:

"teste.tt":
----------------------8<----------------------
[% foo = 1 %]

[% INSERT bla.tt %]

estou na raiz, foo vale [% foo %]

[% INCLUDE bla.tt %]

voltei pra raiz, foo vale [% foo %]

[% PROCESS bla.tt %]

raiz de novo, foo vale [% foo %]
----------------------8<----------------------

e "bla.tt":
----------------------8<----------------------
[% foo = 42 %]
estou em 'bla', mudei foo para [% foo %]
----------------------8<----------------------

Processando esse template, temos o seguinte resultado:

----------------------8<----------------------
[user em host]$ tpage teste.tt


[% foo = 42 %]
estou em 'bla', mudei foo para [% foo %]


estou na raiz, foo vale 1


estou em 'bla', mudei foo para 42


voltei pra raiz, foo vale 1


estou em 'bla', mudei foo para 42


raiz de novo, foo vale 42

----------------------8<----------------------


Mas se vc está aprendendo, recomendo ler o tutorial em vez do manual.
Ele dá mais atenção ao uso do módulo, enquanto o manual é mais um guia
de referência.

Boa sorte!

[]s

-b


2008/11/12 Daniel de Oliveira Mantovani <daniel.oliveira.mantovani em gmail.com>:
> 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"    %]
>
> 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",$/
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>


More information about the SaoPaulo-pm mailing list