r8851@llin: dpavlin | 2005-11-13 22:18:25 +0100
authorDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 14 Nov 2005 16:11:40 +0000 (16:11 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 14 Nov 2005 16:11:40 +0000 (16:11 +0000)
 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
conf/output/tt/html_ffzg.tt
lib/WebPAC/Output/TT.pm

index 13c7f8e..3a69c09 100644 (file)
@@ -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' },
index 1946b63..11d8a1e 100644 (file)
@@ -5,24 +5,29 @@
 </head>
 <body>
 
-<table>
+<table style="border: 1px solid #808080;">
 
-[% IF d.PersonalName || d.PersonalName2 %]
+[%
+       USE dumper;
+       # dumper.dump(d('PersonalName'));
+%]
+
+[% IF d('PersonalName') || d('PersonalName2') %]
 <tr class="line">
   <td class="label">Autor(i)</td>
   <td>
-       [% d.PersonalName %]<br/>
-       [% d.PersonalName2.join("<br/>") %]
+       [% d('PersonalName') %]<br/>
+       [% d('PersonalName2').join("<br/>") %]
   </td>
 </tr>
 [% END %]
 
-[% IF d.CorporateName || d.CorporateName2 %]
+[% IF d('CorporateName') || d('CorporateName2') %]
 <tr class="line">
   <td class="label">Ustanova</td>
   <td>
-       [% d.CorporateName %]<br/>
-       [% d.CorporateName2 %]
+       [% d('CorporateName') %]<br/>
+       [% d('CorporateName2') %]
   </td>
 </tr>
 [% END %]
 <tr class="line2">
   <td class="label">Naslov</td>
   <td>
-       [% d.TitleProper %] : [% d.Subtitle %] = [% d.ParallelTitle %] / [% d.Responsibility %]. [% d.TitleProper2 %]
+       [% d('TitleProper') %] : [% d('Subtitle') %] = [% d('ParallelTitle') %] / [% d('Responsibility') %]. [% d('TitleProper2') %]
   </td>
 </tr>
 
 
-[% IF d.EditionStatement %]
+[% IF d('EditionStatement') %]
 <tr class="line">
   <td class="label">Izdanje</td>
   <td>
-       [% d.EditionStatement %]
+       [% d('EditionStatement') %]
   </td>
 </tr>
 [% END %]
 <tr class="line">
   <td class="label">Impresum</td>
   <td>
-       [% d.PlacePublication %] : [% d.NamePublisher %], [% d.DatePublication %]
+       [% d('PlacePublication') %] : [% d('NamePublisher') %], [% d('DatePublication') %]
   </td>
 </tr>
 
 <tr class="line">
   <td class="label">Materijalni opis</td>
   <td>
-       [% d.PhysicalDescription %]
+       [% d('PhysicalDescription') %]
   </td>
 </tr>
 
-[% IF d.Series %]
+[% IF d('Series') %]
 <tr class="line">
   <td class="label">Nakladnièka cjelina</td>
   <td>
-       [% d.Series %]
+       [% d('Series') %]
   </td>
 </tr>
 [% END %]
   </td>
 </tr>
 
-[% IF d.ISBN %]
+[% IF d('ISBN') %]
 <tr class="line">
  <td class="label">ISBN</td>
  <td>
-       [% d.ISBN %]
+       [% d('ISBN') %]
  </td>
 [% END %]
 
-[% IF d.UncontrolledTerms %]
+[% IF d('UncontrolledTerms') %]
 <tr class="line">
   <td class="label">Predmetnice</td>
   <td>
-       [% d.UncontrolledTerms.join("<br/>") %]
+       [% d('UncontrolledTerms.join("<br/>")') %]
   </td>
 </tr>
 [% END %]
 
-[% IF d.UDC %]
+[% IF d('UDC') %]
 <tr class="line">
   <td class="label">Klasifikacija (UDK)</td>
   <td>
-       [% d.UDC %]
+       [% d('UDC') %]
   </td>
 </tr>
 [% END %]
 
-[% IF d.APA %]
+[% IF d('APA') %]
 <tr class="line">
   <td class="label">Klasifikacija (APA)</td>
   <td>
-       [% d.APA %]
+       [% d('APA') %]
   </td>
 </tr>
 [% END %]
 <tr class="signatura">
   <td class="label">Signatura</td>
   <td>
-       [% d.CallNo %]
+       [% d('CallNo') %]
   </td>
 </tr>
 
index 0582fb8..289fbcc 100644 (file)
@@ -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 = '&#182;<br/>' unless defined($join);
+                               $v = join($join, @{$v});
+                       }
+               }
+print "### v = $v\n";
+               return $v;
+       }
+       $args->{'d'} = \&tt_filter_d;
+
+
        my $out;
 
        $self->{'tt'}->process(