2009-08-15 5 views
3

Comment est-ce que je peux rendre seulement un BLOCK spécifique dans un modèle?Comment est-ce que je peux rendre seulement un `BLOCK` spécifique dans une boîte à outils de modèle de Perl?

Supposons que je possède ce BLOCK dans text.tt, un fichier Template Toolkit:

[% BLOCK someblock %] some block test blah blah blah [% END %] 

Je veux être en mesure d'utiliser process() pour gérer simplement cette partie:

$tt->process("text.tt/someblock", {...}, {...}); 

Est-ce la bonne façon de gérer cela?

Répondre

7

Je pense que c'est l'option EXPOSE_BLOCKS que vous pourriez peut-être après?

use strict; 
use warnings; 
use Template; 

my $tt = Template->new({ 
    INCLUDE_PATH => '.', 
    EXPOSE_BLOCKS => 1, 
}); 

$tt->process('test.tt/header', { tit => 'Weekly report' }); 

for my $day qw(Mon Tues Weds Thurs Fri Sat Sun) { 
    $tt->process('test.tt/body', { day => $day, result => int rand 999 }); 
} 

$tt->process('test.tt/footer', { tit => '1st Jan 1999' }); 

 

test.tt:

[% BLOCK header %] 
[% tit %] 
[% END %] 

[% BLOCK body %] 
* Results for [% day %] are [% result %] 
[% END %] 

[% BLOCK footer %] 
Correct for week commencing [% tit %] 
[% END %] 

 

PRODUIRONT ce rapport (avec des nombres aléatoires):

Rapport hebdomadaire

  • Résultats pour Mon sont 728

  • Résultats pour MAR. sont 363

  • Résultats pour Weds sont 772

  • Résultats pour jeudi sont 864

  • Résultats pour VEN. sont 490

  • Résultats pour Sam sont 88

  • Résultats pour Sun sont 887

Correct pour la semaine commençant le 1er Jan 1999

 

espoir qui aide.

+0

Merci! Savez-vous où je peux trouver une liste complète des options de configuration de Template Toolkit? EXPOSE_BLOCKS n'est pas mentionné sur cette liste: http://template-toolkit.org/docs/manual/Config.html –

+0

C'est probablement la meilleure liste mais malheureusement comme vous l'avez remarqué EXPOSE_BLOCKS lui manque :(J'ai probablement ramassé EXPOSE_BLOCKS à partir du livre Perl Template Toolkit (http://template-toolkit.org/book.html). Il suffit de feuilleter l'index de la page 69 ... hmmm exemple est assez vide mais il est mentionné ici. – draegtun

Questions connexes