Bug 13904: Make unimarc_field_4XX displays usefull 200 subfield data
authorFrédéric Demians <f.demians@tamil.fr>
Tue, 26 May 2015 16:23:11 +0000 (18:23 +0200)
committerTomas Cohen Arazi <tomascohen@unc.edu.ar>
Fri, 19 Jun 2015 14:35:57 +0000 (11:35 -0300)
When searching for multivolumes titles, UNIMARC 4xx field plugin
displays the title of the biblios (200$a), without giving info about
volumes (200 $h $i). It neither doesn't display $e (subtitle) info which
could greatly help to disambiguate search result.

The displayed title is supposed to link to a biblio record view (MARC /
normal). It doesn't work.

TO TEST:

- On a UNIMARC Koha, add a new biblio record
- Call the 4XX plugin from 461/463 field
- Search for a biblio record which contains 200$e, and/or 200$h and/or
  200$i subfields.
- You get a result list, with two issues:
  1. $a, $h & $i aren't displayed
  2. Biblio title is not a link
- Apply the patch, and repeat previous steps.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
I got a link on fulltitle, but in 'ahie' order (not aehi)
Fixed some tabs.

Signed-off-by: Jonathan Druart <jonathan.druart@koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@unc.edu.ar>

cataloguing/value_builder/unimarc_field_4XX.pl
koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_field_4XX.tt

index 5ab5bf1..56b5e14 100755 (executable)
@@ -378,7 +378,15 @@ sub plugin {
            )
          {
             my $record = C4::Search::new_record_from_zebra( 'biblioserver', $results->[$i] );
+            next unless $record;
             my $rechash = TransformMarcToKoha( $dbh, $record );
+            if ( my $f = $record->field('200') ) {
+                $rechash->{fulltitle} =
+                    join(', ', map { $_->[1] } grep { $_->[0] =~ /[aehi]/ } $f->subfields() );
+            }
+            else {
+                $rechash->{fulltitle} = $rechash->{title};
+            }
             my $pos;
             my $countitems;
             if ( $rechash->{itemnumber} ) {
index 66d5223..447257a 100644 (file)
                                     [% IF ( resul.even ) %]<td class="hilighted">
                                     [% ELSE %]<td>[% END %]
                                                             [% IF ( resul.MARC_ON ) %]
-                                                                    <a_class="transparent resultlist" href="/cgi-bin/koha/MARCdetail.pl?biblionumber=[% resul.biblionumber |uri %]">[% resul.title |html %]</a>
+                                                                    <a class="transparent resultlist" href="/cgi-bin/koha/MARCdetail.pl?biblionumber=[% resul.biblionumber |url %]">[% resul.title |html %]</a>
                                                             [% ELSE %]
-                                                                    <a_class="transparent resultlist" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% resul.biblionumber |uri %]">[% resul.title |html %]</a>   [% END %]
+                                                                    <a class="transparent resultlist" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% resul.biblionumber |url %]">[% resul.fulltitle |html %]</a>[% END %]
                                                     <p>[% resul.author |html %]
                                                     [% IF ( resul.publishercode ) %]- [% resul.publishercode |html %][% END %]
                                                     [% IF ( resul.place ) %] ; [% resul.place |html %][% END %]