Thread HTML Formulare und Perl
(23 answers)
Opened by kruemmel at 2007-07-24 20:47
@bieber: Dein Code mal mit HTML::Template::Compiled:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #!/usr/bin/perl use strict; use warnings; use HTML::Template::Compiled; my $template = HTML::Template::Compiled->new( filehandle => *DATA, ); my @values; my $jahr = 2027; for( 2007 .. 2059 ){ # fuege die Hashreferenz fuer jede Option hinzu push @values, { year => $_, selected => $_ == $jahr, }; } $template->param( JAHRE => \@values ); print $template->output; __DATA__ <form method="post" action="index.pl "> <select name="JAHR"> <%loop JAHRE%> <option <%if selected%>selected<%/if%>><%var year %></option> <%/loop%> </select> </form> Bei so kleinen Beispielen kommen die Vorteile von Templates noch nicht so stark zur Geltung, aber es gibt sehr viele davon: * Bessere Übersicht im Perl-Programm: Wenn im Perl-Code ein Fehler ist, muss man sich nicht noch zusätzlich durch ein paar hundert Zeilen HTML-Text kämpfen. * Leichtere Austauschbarkeit des Designs: Im Template hat man einen kompletten HTML-Text vor sich. Da ist das Design besser zu verändern. Das HTML ist nicht in viele kleine Teile aufgeteilt. Man muss nur den neuen Template-Namen im Perl-Code eintragen (oder einfach das alte Template ändern). Man muss das Perl-Programm nicht anfassen. * Man kann ein komplettes Design machen, ohne das Perl-Programm zu haben. Steht das Design müssen die dynamischen Inhalte nur noch durch Template-Variablen ersetzt werden und schon steht der HTML-Teil. Ich muss mir nicht noch überlegen wo im Perl-Code muss ich den HTML-Text einfügen? * Template-Engines nehmen einem viel Arbeit ab: Bei HTML::Template::Compiled kann man zum Beispiel ein "default_escape" angeben. Man muss sich dann nicht mehr um das Escapen der dynamischen Inhalte kümmern. So kann man zum Beispiel das Risiko von Cross-Site-Scripting zumindest einschränken wenn man "default_escape" auf 'HTML' setzt. * und noch einige mehr... 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/ |