Thread Frage zu HTML::Template::Compiled: <%IF foo%><%IF bar%>bla<%/IF%><%/IF%> (106 answers)
Opened by steffenw at 2006-12-15 15:33

renee
 2006-12-30 13:26
#28727 #28727
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Nee, ich übermittel die *gar nicht*

Ich verwende die meisten Templates für mindestens zwei Fälle.

Beispiel:
Code: (dl )
1
2
3
4
5
6
7
8
9
Jede Menge anderer Kram wie z.B. ne Inhaltsuebersicht...
<!-- TMPL_IF NAME=MESSAGE -->
<form action="<!-- TMPL_VAR NAME=ACTION -->" method="post">
<input type="hidden" name="id" value="<!-- TMPL_VAR NAME=ID -->">
<input type="submit" value="Ja, Artikel l&ouml;schen">
<input type="hidden" name="action" value="committed_article_deletion">
<input type="hidden" name="sid" value="<!-- TMPL_VAR NAME=SID -->">
</form>
<!-- /TMPL_IF -->


Und im Skript dann (mit CPAN:CGI::Application):
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sub fall1{
my ($self) = @_;

# einige Berechnungen, Datenbankinteraktionen, etc.

my $template = $self->load_tmpl($self->{tmpl_dir} . '/template.tmpl');
$template->param(IRGENDWAS => $value);
return $template->output();
}

sub fall2{
my ($self) = @_;

# jede Menge anderer Sachen...

my $template = $self->load_tmpl($self->{tmpl_dir} . '/template.tmpl');
$template->param(IRGENDWAS => $value,
MESSAGE => $msg,);
return $template->output();
}


Beide Fälle benutzen zwar das gleiche Template, machen aber so unterschiedliche Sachen, dass ich es nicht in eine Sub zusammenfassen wollte.

So übergebe ich bei der einen Sub keinen Parameter für MESSAGE, weil da _nie_ der Fall eintritt wo ich MESSAGE brauchen würde.

So spare ich mir eine umständliche Sub (durch Aufteilung in zwei!) und ich muss kein zweites Template machen!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Frage zu HTML::Template::Compiled: <%IF foo%><%IF bar%>bla<%/IF%><%/IF%>