Thread Wunsch: HTML-Template-Compiled und Helferlein oder Makros (10 answers)
Opened by GwenDragon at 2013-09-06 17:28

pq
 2013-09-07 18:10
#169976 #169976
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
2013-09-07T15:11:44 GwenDragon
Ach so. Ich wollte mal wieder viel zu viel Zauberei.

es wäre theoretisch denkbar, dass man ein * angeben kann, der sagt, alle attribute sind möglich. dafür müsste ich den parser etwas aufbohren.

Quote
Dann werde ich in der DTD von HTML4 nachsehen müssen und die Attribute einbinden.

wie meinst du das?

Quote
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.

es gibt die möglichkeit der nutzung von H::T::C::Compiler::parse_var.
Das benutze ich z.b. beim Translate-Plugin hier im Forum.
Wenn du also weisst, das Attribut TOKEN enthält den namen des parameters im stash, kannst du sowas machen:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
my $token = $attr->{TOKEN}; # z.b. "csrftoken" oder ".config.token"
my $token_expr = $htc->get_compiler->parse_var($htc,
    var => $token,
    # die 3 zeilen sind leider noch notwendig, evtl. kann
    # ich die mal woanders hin schieben
    method_call => $htc->method_call,
    deref => $htc->deref,
    formatter_path => $htc->formatter_path,
);

Heraus kommt dann der entsprechende Perl-Code, der ins kompilierte Template eingesetzt wird.
Das berücksichtigt dann auch, ob global_vars benutzt wird, case_sensitive usw.
get_var direkt zu benutzen ist nicht empfehlenswert. (edit: bzw. get_var wird sowieso nur noch bei H::T::C::Classic benutzt).

und dann:
Code (perl): (dl )
1
2
3
4
    $expression .= <<"EOM";
$OUT '<input type="hidden" name="TOKEN" value="' . $token_expr . '">
';
EOM

Last edited: 2013-09-07 18:19:18 +0200 (CEST)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Wunsch: HTML-Template-Compiled und Helferlein oder Makros