[SP-pm] Inserindo variável no pro_process
Luis Motta Campos
luismottacampos at yahoo.co.uk
Sat Dec 13 01:05:36 PST 2008
Andre Carneiro wrote:
> Agora para enviar variáveis diretamente para lá, eu sinceramente não
> sei. Champs??? Você é a 'autoridade' em Template Toolkit por aqui.
> Pode dar uma ajuda?
André, esta é por que você pediu.
Daniel, RTFM. Toda a informação que você precisa está no
Template::Manual, procure pela tag META.
O problema com {PRE,POST}_PROCESS é que ele não foi feito para o que o
exemplo que o Andy Wardley usa ele. Eu já falei com o Andy sobre isso,
mas ele diz que é uma coisa tradicional e que não tem tempo para
inventar um outro exemplo para a documentação.
O {PRE,POST}_PROCESS permite apenas que você leia as informações
declaradas na definição META do seu template. Apenas valores simples são
aceitos, nada de variáveis interpoladas ou parâmetros dinâmicos.
Para resolver o problema de criar páginas com títulos e rodapés
dinâmicos, a solução correta é usar o WRAPPER.
Meu exemplo, completo:
# header.tt
<html>
<head>
<title> [% template.title %] </title>
</head>
<body>
## EOF
# footer.tt
[%# As merdas do Google deixam tua pagina lenta.
# Se ainda assim voce quiser incluir, tem de vir aqui.
%]
<p>Exemplo versão [% template.version %] criado por [%
template.author %], copyleft [% template.year %].
</body>
</html>
## EOF
# body.tt
[% META
title = 'Teste do Mantovani'
author = 'LMC'
version = '0.01'
year = '2008'
%]
<p>[% message %]
## EOF
# process.pl
#!/usr/bin/perl
use strict;
use warnings;
use Template;
use FindBin;
sub get_template_config {
return {
INCLUDE_PATH => $FindBin::Bin,
INTERPOLATE => 1,
ABSOLUTE => 1,
POST_CHOMP => 1,
PRE_PROCESS => qq{$FindBin::Bin/header.tt},
EVAL_PERL => 0,
POST_PROCESS => qq{$FindBin::Bin/footer.tt},
};
}
sub get_template_data {
return {
title => q{Bigorna do Mantovani},
message => q{O Mantovani precisa aprender a RTFM }
. q{antes de perguntar na lista},
footer => q{Criado por LMC em 13/12/2008},
};
}
my $tt = Template->new(get_template_config);
$tt->process( 'body.tt', get_template_data ) || die $tt->error;
## EOF
Putamplexos.
--
Luis Motta Campos is a software engineer,
Perl Programmer, foodie and photographer.
More information about the SaoPaulo-pm
mailing list