Thread HTML-Template-Compiled: Mit Loop AoH ausgeben (19 answers)
Opened by GwenDragon at 2012-01-25 09:54

GwenDragon
 2012-04-23 10:39
#157765 #157765
User since
2005-01-17
14757 Artikel
Admin1
[Homepage]
user image
Hmm, aus irgendeinem Grund funktioniert das nicht so wie ich mir das denke. Ich habe wohl ein Verständnisproblem.
Klappt das nicht mit Aliasen?
Code: (dl )
<?= EXPR="termin.{column}"?>
termin ist ein Alias und enthält ein Hashref, column ist eine Zeichenkette.

Testcode:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/usr/bin/perl

use strict;
use warnings;

use lib '.';    # load DEV of HTC
use HTML::Template::Compiled;

my @data = (
    {   Veranstaltung => "C-Workshop 2020 Testdorf",
        Zeit          => "12:00",
        Datum         => "01.02.2012",
        Ort           => "Testdorf",
        Veranstalter  => "Tim Towdi"
    },
    {   Veranstaltung => "Perlen für Anfänger",
        Zeit          => "18:00",
        Datum         => "01.03.2012",
        Ort           => "Perlsen",
        Veranstalter  => "IHK Perlsen"
    }
);
my @row_names = qw(Veranstaltung Zeit Datum Ort Veranstalter);

my $tmpl = <<HTML;
<?LOOP .termine.data alias=termin?>
--------------
Termin <?= __counter__ ?>: 
<?LOOP .termine.column_names alias=column?>
<?= column ?>: <?= EXPR=".termine.data[0].{column}"?> (Datensatz 0 als Test)
<?= column ?>: <?= EXPR="termin.{column}"?>
<?/LOOP?>
--------------
<?/LOOP?>
HTML

my %parms = (
    termine => {
        column_names => \@row_names,
        data         => \@data
    }
);

my $htc = HTML::Template::Compiled->new(
    scalarref         => \$tmpl,
    tagstyle          => [qw(+php)],
    loop_context_vars => 1,
    use_expressions   => 1,
);
$htc->param(%parms);
print $htc->output;


Für eine Erläuterung wäre ich dankbar.

View full thread HTML-Template-Compiled: Mit Loop AoH ausgeben