Schrift
[thread]226[/thread]

HTML::Template: Undefinierte Parameter abfangen

Leser: 1


<< >> 4 Einträge, 1 Seite
pktm
 2004-04-08 02:23
#1962 #1962
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!
Wie der Titel schon hergibt würde ich gerne undefinierte Parameter in meinem HTML::Template-Objekt abfangen.
Eigentlich wollte ich das per default-value erledigen, was jedoch nicht so sonderlich gut geht, da ich die Werte innherhalb von HTML-Tags brauche und ich da Probs mit den <> bekomme.
Quote
<TMPL_VAR NAME="name" DEFAULT="default_value">

Daher bin ich auf %value% umgestiegen => da kann ich aber kein default angeben.

Jedenfalls kann ich die Parameter der normalen TMPL_VARs (die Loops brauche ich nicht!) so abfragen:
Code: (dl )
1
2
3
4
5
6
7
8
9
sub setUndefTmplValues {
   my $template = shift;
   my @parameter_names = $template->param();
#    print STDERR Data::Dumper::Dumper( @parameter_names );
   foreach( @parameter_names ) {
       eval{ $template->param( $_ => "$_ nicht definiert" ) unless defined( $template->param($_) ); }
   }
   return 1;
} # /checkTmplForValues


Das Einzige, was mich da noch stört ist das eval{} wegen der Loops, die nämlcih eine Arrayreferenz erwarten und deswegen bei obiger Abfrage einen Fehler verursachen.

Weis wer vielleicht eine elegante Lösung für dieses Problem?
Vielleicht so die Abfarge des Parametertypen oder so?
mfg pktm
PS: bitte auch Kritik / Verbesserungsvorschläge an obigen Code üben :)\n\n

<!--EDIT|pktm|1081376759-->
http://www.intergastro-service.de (mein erstes CMS :) )
format_c
 2004-04-08 04:48
#1963 #1963
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Nein nich so direkt. Aber was das Fehler verursachen angeht, könntest du doch mit ref abfragen was an Datentyp kommt.

Gruß Alex
ronald
 2004-04-08 15:32
#1964 #1964
User since
2003-08-15
76 Artikel
BenutzerIn
[default_avatar]
Wenn du beim ->new den Parameter "die_on_bad_params => 0" angibst, bricht das Programm nicht mehr ab.

Wenn dann bei <TMPL_VAR name=xxx> für "xxx" nichts definiert ist, wird des einfach entfernt.

HTH
pktm
 2004-04-08 16:12
#1965 #1965
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
@ronald: Ich musste sogar strict => 0, setzen, damit ich auf meinem Webspace überhaupt das Teil zum laufen gebracht habe...
Bin den Fehler immernoch am suchen.

@format_c: thx, genau das habe ich gesucht
http://www.intergastro-service.de (mein erstes CMS :) )
<< >> 4 Einträge, 1 Seite



View all threads created 2004-04-08 02:23.