Thread Wunsch: HTML-Template-Compiled und Helferlein oder Makros
(10 answers)
Opened by GwenDragon at 2013-09-06 17:28 2013-09-07T12:45:04 pqAh ja, praktisch. 2013-09-07T12:45:04 pqAch so. Ich wollte mal wieder viel zu viel Zauberei. Aber ok, HTML/XML hat ja auch feste Definitionen, welche Attribute vorkommen können. Dann werde ich in der DTD von HTML4 nachsehen müssen und die Attribute einbinden. Wie ist das eigentlich, wie komme ich aus einem Plugin an den Stash des HTC-Objekts? Es geht mir darum nämlich Werte einer Variablen einzusetzen. Wenn also das Template wie folgt ist: Code: (dl
)
1 test Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 use 5.010; use HTML::Template::Compiled; use HTCForm; my $form = HTCForm->new; my $sec_token = 'xyz0xgdtz256hdfrashwe5625xh'; my $htc = HTML::Template::Compiled->new( filename => "form.html", plugin => [$form], debug => 1, ); $htc->param( xsfrtoken => $sec_token ); say $htc->output; Code: (dl
)
1 test Ein ack auf die Source enthüllt mir: C:\strawberry\perl>ack get_var site\lib\HTML\Template\Compiled\Classic.pm 12:sub _get_var_global_sub { site\lib\HTML\Template\Compiled\Compiler\Classic.pm 44: "\$t->_get_var_global_sub(" . '$P,$$C,0,'."[undef,'$var'])"; site\lib\HTML\Template\Compiled.pm 991:# '$t->get_var($P, $$C, 1, [PATH_DEREF, 'key'])' 992:# the get_var method walks the paths given through the data structure. 994:# parameter hash. the third argument to get_var is 'final'. Wenn ich also den Wert einer beliebigen Variablen im Stash haben möchte wäre das dann so? Code (perl): (dl
)
1 2 3 4 5 6 7 elsif ($def =~/^\w+$/) { $expression .= <<"EOM"; $OUT '<input type="hidden" name="$def" value="' . \$t->_get_var_global_sub(\$P,\$\$C,0,[undef,'$def']) . '">'; EOM } Aber _get_var_global_sub existiert ja nur in HTC::Classic. Und ich komme auch nicht an Werte, die im Stash so verschachtelt drin sind und im Template Code: (dl
)
token="z.xsfrtoken" %> Stell ich mich wirklich zu sehr an? Oder wo kann ich den Stash noch auslesen? |