6 |
use base qw/WebPAC::Common/; |
use base qw/WebPAC::Common/; |
7 |
|
|
8 |
use Template; |
use Template; |
9 |
|
use List::Util qw/first/; |
10 |
use Data::Dumper; |
use Data::Dumper; |
11 |
|
|
12 |
=head1 NAME |
=head1 NAME |
68 |
|
|
69 |
Create output from in-memory data structure using Template Toolkit template. |
Create output from in-memory data structure using Template Toolkit template. |
70 |
|
|
71 |
my $text = $tt->apply( template => 'text.tt', data => @ds ); |
my $text = $tt->apply( |
72 |
|
template => 'text.tt', |
73 |
|
data => \@ds |
74 |
|
); |
75 |
|
|
76 |
=cut |
=cut |
77 |
|
|
86 |
$log->logconfess("need $a") unless ($args->{$a}); |
$log->logconfess("need $a") unless ($args->{$a}); |
87 |
} |
} |
88 |
|
|
89 |
|
# filter to return value from @ds |
90 |
|
|
91 |
|
sub tt_filter_d { |
92 |
|
|
93 |
|
my ($name,$join) = @_; |
94 |
|
|
95 |
|
print "### name = ",Dumper($name); |
96 |
|
|
97 |
|
my $item = first { $_->{'name'} eq $name } @{ $args->{'data'} }; |
98 |
|
|
99 |
|
return unless($item); |
100 |
|
|
101 |
|
print "### item = ",Dumper($item); |
102 |
|
|
103 |
|
my $v = $item->{'display'} || return; |
104 |
|
|
105 |
|
if (ref($v) eq 'ARRAY') { |
106 |
|
if ($#{$v} == 0) { |
107 |
|
$v = $v->[0]; |
108 |
|
} else { |
109 |
|
$join = '¶<br/>' unless defined($join); |
110 |
|
$v = join($join, @{$v}); |
111 |
|
} |
112 |
|
} |
113 |
|
print "### v = $v\n"; |
114 |
|
return $v; |
115 |
|
} |
116 |
|
$args->{'d'} = \&tt_filter_d; |
117 |
|
|
118 |
|
|
119 |
my $out; |
my $out; |
120 |
|
|
121 |
$self->{'tt'}->process( |
$self->{'tt'}->process( |
135 |
$tt->to_file( |
$tt->to_file( |
136 |
file => 'out.txt', |
file => 'out.txt', |
137 |
template => 'text.tt', |
template => 'text.tt', |
138 |
data => @ds |
data => \@ds |
139 |
); |
); |
140 |
|
|
141 |
=cut |
=cut |