Bug 6938 - replace two subscription fields that were incorrectly removed
[koha_gimpoz] / opac / opac-MARCdetail.pl
index fae749c..ffa0a6d 100755 (executable)
@@ -1,6 +1,7 @@
 #!/usr/bin/perl
 
 # Copyright 2000-2002 Katipo Communications
+# Parts copyright 2010 BibLibre
 #
 # This file is part of Koha.
 #
@@ -23,6 +24,7 @@ MARCdetail.pl : script to show a biblio in MARC format
 
 =head1 SYNOPSIS
 
+=cut
 
 =head1 DESCRIPTION
 
@@ -59,7 +61,7 @@ my $biblionumber = $query->param('biblionumber');
 my $itemtype     = &GetFrameworkCode($biblionumber);
 my $tagslib      = &GetMarcStructure( 0, $itemtype );
 my $biblio = GetBiblioData($biblionumber);
-my $record = GetMarcBiblio($biblionumber);
+my $record = GetMarcBiblio($biblionumber, 1);
 if ( ! $record ) {
     print $query->redirect("/cgi-bin/koha/errors/404.pl");
     exit;
@@ -70,7 +72,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         template_name   => "opac-MARCdetail.tmpl",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ),
         debug           => 1,
     }
 );
@@ -140,8 +142,8 @@ for ( my $tabloop = 0 ; $tabloop <= 10 ; $tabloop++ ) {
             for my $i ( 0 .. $#subf ) {
                 $subf[$i][0] = "@" unless $subf[$i][0];
                 my $sf_def = $tagslib->{ $fields[$x_i]->tag() }->{ $subf[$i][0] };
-                next if ( $sf_def->{tab} ne $tabloop );
-                next if ( $sf_def->{hidden} > 0 ); 
+                next if ( ($sf_def->{tab}||'') ne $tabloop );
+                next if ( ($sf_def->{hidden}||0) > 0 );
                 my %subfield_data;
                 $subfield_data{marc_lib} = ($sf_def->{lib} eq $previous) ?  '--' : $sf_def->{lib};
                 $previous = $sf_def->{lib};
@@ -192,7 +194,7 @@ for ( my $tabloop = 0 ; $tabloop <= 10 ; $tabloop++ ) {
             undef @subfields_data;
         }
     }
-    $template->param( $tabloop . "XX" => \@loop_data );
+    $template->param( "tab" . $tabloop . "XX" => \@loop_data );
 }
 
 
@@ -213,8 +215,8 @@ foreach my $field (@fields) {
     # loop through each subfield
     for my $i ( 0 .. $#subf ) {
         my $sf_def = $tagslib->{ $field->tag() }->{ $subf[$i][0] };
-        next if ( $sf_def->{tab} ne 10 );
-               next if ( $sf_def->{hidden} > 0 );
+        next if ( ($sf_def->{tab}||'') ne 10 );
+        next if ( ($sf_def->{hidden}||0) > 0 );
         $witness{ $subf[$i][0] } = $sf_def->{lib};
 
         if ( $sf_def->{isurl} ) {
@@ -235,7 +237,7 @@ foreach my $field (@fields) {
 my ( $holdingbrtagf, $holdingbrtagsubf ) =
   &GetMarcFromKohaField( "items.holdingbranch", $itemtype );
 @big_array =
-  sort { $a->{$holdingbrtagsubf} cmp $b->{$holdingbrtagsubf} } @big_array;
+  sort { ($a->{$holdingbrtagsubf}||'') cmp ($b->{$holdingbrtagsubf}||'') } @big_array;
 
 #fill big_row with missing datas
 foreach my $subfield_code ( keys(%witness) ) {
@@ -268,6 +270,16 @@ if(C4::Context->preference("ISBD")) {
        $template->param(ISBD => 1);
 }
 
+#Search for title in links
+if (my $search_for_title = C4::Context->preference('OPACSearchForTitleIn')){
+    $biblio->{author} ? $search_for_title =~ s/{AUTHOR}/$biblio->{author}/g : $search_for_title =~ s/{AUTHOR}//g;
+    $biblio->{title} =~ s/\/+$//; # remove trailing slash
+    $biblio->{title} =~ s/\s+$//; # remove trailing space
+    $biblio->{title} ? $search_for_title =~ s/{TITLE}/$biblio->{title}/g : $search_for_title =~ s/{TITLE}//g;
+    $biblio->{isbn} ? $search_for_title =~ s/{ISBN}/$biblio->{isbn}/g : $search_for_title =~ s/{ISBN}//g;
+ $template->param('OPACSearchForTitleIn' => $search_for_title);
+}
+
 $template->param(
     item_loop        => \@item_value_loop,
     item_header_loop => \@header_value_loop,