Bug 18904: (follow-up) Retrieve subfield in the order they are stored
[koha.git] / authorities / detail-biblio-search.pl
index 31b5146..717061b 100755 (executable)
@@ -4,25 +4,26 @@
 #
 # This file is part of Koha.
 #
-# Koha is free software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 #
-# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
 #
-# You should have received a copy of the GNU General Public License along
-# with Koha; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
 
 =head1 NAME
 
-etail.pl : script to show an authority in MARC format
+detail-biblio-search.pl - script to show an authority in MARC format
 
 =head1 SYNOPSIS
 
+=cut
 
 =head1 DESCRIPTION
 
@@ -33,8 +34,6 @@ parameters tables.
 
 =head1 FUNCTIONS
 
-=over 2
-
 =cut
 
 
@@ -45,12 +44,14 @@ use C4::AuthoritiesMarc;
 use C4::Auth;
 use C4::Context;
 use C4::Output;
-use CGI;
+use CGI qw ( -utf8 );
 use MARC::Record;
 use C4::Koha;
 # use C4::Biblio;
 # use C4::Catalogue;
 
+use Koha::Authorities;
+use Koha::Authority::Types;
 
 my $query=new CGI;
 
@@ -58,19 +59,21 @@ my $dbh=C4::Context->dbh;
 
 my $authid = $query->param('authid');
 my $index = $query->param('index');
-my $authtypecode = &GetAuthTypeCode($authid);
+my $authtypecode = Koha::Authorities->find($authid)->authtypecode;
 my $tagslib = &GetTagsLabels(1,$authtypecode);
 
 my $record =GetAuthority($authid);
 # open template
-my ($template, $loggedinuser, $cookie)
-               = get_template_and_user({template_name => "authorities/detail-biblio-search.tmpl",
-                            query => $query,
-                            type => "intranet",
-                            authnotrequired => 0,
-                            flagsrequired => {catalogue => 1},
-                            debug => 1,
-                            });
+my ($template, $loggedinuser, $cookie) = get_template_and_user(
+    {
+        template_name   => "authorities/detail-biblio-search.tt",
+        query           => $query,
+        type            => "intranet",
+        authnotrequired => 0,
+        flagsrequired   => { catalogue => 1 },
+        debug           => 1,
+    }
+);
 
 # fill arrays
 my @loop_data =();
@@ -94,7 +97,7 @@ my @fields = $record->fields();
                        my @subf=$field->subfields;
        # loop through each subfield
                        for my $i (0..$#subf) {
-                               $subf[$i][0] = "@" unless $subf[$i][0];
+                               $subf[$i][0] = "@" unless defined $subf[$i][0];
 #                              next if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{tab}  ne $tabloop);
                                next if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{hidden});
                                my %subfield_data;
@@ -118,18 +121,12 @@ my @fields = $record->fields();
        }
        $template->param("0XX" =>\@loop_data);
 
-my $authtypes = getauthtypes;
-my @authtypesloop;
-foreach my $thisauthtype (keys %$authtypes) {
-       my %row =(value => $thisauthtype,
-                               selected => $thisauthtype eq $authtypecode,
-                               authtypetext => $authtypes->{$thisauthtype}{'authtypetext'},
-                       );
-       push @authtypesloop, \%row;
-}
-
-$template->param(authid => $authid,
-               authtypesloop => \@authtypesloop, index => $index,
-               );
+my $authority_types = Koha::Authority::Types->search( {}, { order_by => ['authtypetext'] } );
+
+$template->param(
+    authid          => $authid,
+    authority_types => $authority_types,
+    index           => $index,
+);
 output_html_with_http_headers $query, $cookie, $template->output;