From c21d1e1d4bfd5eb501d19ff6336427dd89998236 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Mon, 14 Nov 2005 16:11:40 +0000 Subject: [PATCH] r8851@llin: dpavlin | 2005-11-13 22:18:25 +0100 more work on templates. created TT filter d('TagName') to produce output in TT templates with type="display". Full notation is: d('TagName') or d('TagName','delmiter') git-svn-id: svn+ssh://mjesec/home/dpavlin/svn/webpac2/trunk@42 07558da8-63fa-0310-ba24-9fe276d99e06 --- Makefile.PL | 1 + conf/output/tt/html_ffzg.tt | 51 ++++++++++++++++++++----------------- lib/WebPAC/Output/TT.pm | 31 ++++++++++++++++++++++ 3 files changed, 60 insertions(+), 23 deletions(-) diff --git a/Makefile.PL b/Makefile.PL index 13c7f8e..3a69c09 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -22,6 +22,7 @@ WriteMakefile( 'Template' => 0, 'Time::HiRes' => 0, 'File::Temp' => 0, + 'List::Util' => 0, }, dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', }, clean => { FILES => 'WebPAC-* pod2html Makefile tags' }, diff --git a/conf/output/tt/html_ffzg.tt b/conf/output/tt/html_ffzg.tt index 1946b63..11d8a1e 100644 --- a/conf/output/tt/html_ffzg.tt +++ b/conf/output/tt/html_ffzg.tt @@ -5,24 +5,29 @@ - +
-[% IF d.PersonalName || d.PersonalName2 %] +[% + USE dumper; + # dumper.dump(d('PersonalName')); +%] + +[% IF d('PersonalName') || d('PersonalName2') %] [% END %] -[% IF d.CorporateName || d.CorporateName2 %] +[% IF d('CorporateName') || d('CorporateName2') %] [% END %] @@ -30,16 +35,16 @@ -[% IF d.EditionStatement %] +[% IF d('EditionStatement') %] [% END %] @@ -48,22 +53,22 @@ -[% IF d.Series %] +[% IF d('Series') %] [% END %] @@ -75,37 +80,37 @@ -[% IF d.ISBN %] +[% IF d('ISBN') %] [% END %] -[% IF d.UncontrolledTerms %] +[% IF d('UncontrolledTerms') %] [% END %] -[% IF d.UDC %] +[% IF d('UDC') %] [% END %] -[% IF d.APA %] +[% IF d('APA') %] [% END %] @@ -124,7 +129,7 @@ diff --git a/lib/WebPAC/Output/TT.pm b/lib/WebPAC/Output/TT.pm index 0582fb8..289fbcc 100644 --- a/lib/WebPAC/Output/TT.pm +++ b/lib/WebPAC/Output/TT.pm @@ -6,6 +6,7 @@ use strict; use base qw/WebPAC::Common/; use Template; +use List::Util qw/first/; use Data::Dumper; =head1 NAME @@ -85,6 +86,36 @@ sub apply { $log->logconfess("need $a") unless ($args->{$a}); } + # filter to return value from @ds + + sub tt_filter_d { + + my ($name,$join) = @_; + +print "### name = ",Dumper($name); + + my $item = first { $_->{'name'} eq $name } @{ $args->{'data'} }; + + return unless($item); + +print "### item = ",Dumper($item); + + my $v = $item->{'display'} || return; + + if (ref($v) eq 'ARRAY') { + if ($#{$v} == 0) { + $v = $v->[0]; + } else { + $join = '¶
' unless defined($join); + $v = join($join, @{$v}); + } + } +print "### v = $v\n"; + return $v; + } + $args->{'d'} = \&tt_filter_d; + + my $out; $self->{'tt'}->process( -- 2.20.1
Autor(i) - [% d.PersonalName %]
- [% d.PersonalName2.join("
") %] + [% d('PersonalName') %]
+ [% d('PersonalName2').join("
") %]
Ustanova - [% d.CorporateName %]
- [% d.CorporateName2 %] + [% d('CorporateName') %]
+ [% d('CorporateName2') %]
Naslov - [% d.TitleProper %] : [% d.Subtitle %] = [% d.ParallelTitle %] / [% d.Responsibility %]. [% d.TitleProper2 %] + [% d('TitleProper') %] : [% d('Subtitle') %] = [% d('ParallelTitle') %] / [% d('Responsibility') %]. [% d('TitleProper2') %]
Izdanje - [% d.EditionStatement %] + [% d('EditionStatement') %]
Impresum - [% d.PlacePublication %] : [% d.NamePublisher %], [% d.DatePublication %] + [% d('PlacePublication') %] : [% d('NamePublisher') %], [% d('DatePublication') %]
Materijalni opis - [% d.PhysicalDescription %] + [% d('PhysicalDescription') %]
Nakladnièka cjelina - [% d.Series %] + [% d('Series') %]
ISBN - [% d.ISBN %] + [% d('ISBN') %]
Predmetnice - [% d.UncontrolledTerms.join("
") %] + [% d('UncontrolledTerms.join("
")') %]
Klasifikacija (UDK) - [% d.UDC %] + [% d('UDC') %]
Klasifikacija (APA) - [% d.APA %] + [% d('APA') %]
Signatura - [% d.CallNo %] + [% d('CallNo') %]