HTML::Template -> Bugfix gesucht für fehlende Platzhalter
Aquariophile
- perl
Guten Morgen =))
Wie gehts wie stehts?
Hab alles schön aufgelistet damit es übersichtlich ist....
Die unten aufgeführen Scripte funktionieren perfekt.
Das Problem entsteht aber dann,
wenn man einen Platzhalter aus einem Template rausnimmt.
Wenn man z.B. <div><TMPL_VAR NAME=AGE></div> rausnimmt,
dann zeigt das script im Browser gleich gar nix mehr an,
und gibt den error aus:
HTML::Template : Attempt to set nonexistent parameter 'age' - this parameter name doesn't match any declarations in the template file : (die_on_bad_params => 1) at problem.pl line 14
Wenn nur ich selber die Templates bearbeite ist es ja kein Problem,
aber sobald ich nen Kunden dran lasse faengt das Problem an.
Der Kunde braucht vielleicht ein paar Platzhalter im template,
und andere verwendet er nicht,
und sobald auch nur 1 dummer Platzhalter fehlt geht es nicht mehr.
Wie schaut die Lösung aus?
Danke!
Aquariophile
#!/usr/bin/perl -w
use CGI;
use strict;
use HTML::Template;
my $cgi = CGI->new();
print "Content-type: text/html\n\n";
my $template = HTML::Template->new( filename => 'problem.tpl');
$template->param(NAME => "Roberto");
$template->param(AGE => "42");
$template->param(COUNTRY => "Italia");
print $template->output;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
</head>
<body>
<div><TMPL_VAR NAME=NAME></div>
<div><TMPL_VAR NAME=AGE></div>
<div><TMPL_VAR NAME=COUNTRY></div>
</body>
</html>
===========================
DANKE!!! =))
LG
Aquariophile
Nochmals Hallo!
Hab in nem Chat die Lösung bereits bekommen!
Danke!
PS.: Falls es wen interessieren sollte:
Die option die in den Modul-Aufruf reinkommt heisst:
die_on_bad_params => 0
Also direkt bei HTML::Template->new rein.
LG
Aquariophile