Bug 19038: Remove the OPACShowBarcode syspref
[koha.git] / cataloguing / z3950_search.pl
index 3cda1b4..6ab1baa 100755 (executable)
@@ -5,34 +5,30 @@
 #
 # 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>.
 
 use strict;
 use warnings;
-use CGI;
+use CGI qw ( -utf8 );
 
 use C4::Auth;
 use C4::Output;
-#use C4::Biblio;
 use C4::Context;
 use C4::Breeding;
 use C4::Koha;
-#use C4::Charset;
-#use ZOOM;
 
 my $input        = new CGI;
-my $dbh          = C4::Context->dbh;
 my $error         = $input->param('error');
 my $biblionumber  = $input->param('biblionumber') || 0;
 my $frameworkcode = $input->param('frameworkcode');
@@ -44,25 +40,23 @@ my $lccn          = $input->param('lccn');
 my $lccall        = $input->param('lccall');
 my $subject       = $input->param('subject');
 my $dewey         = $input->param('dewey');
-my $controlnumber      = $input->param('controlnumber');
-my $stdid                      = $input->param('stdid');
-my $srchany                    = $input->param('srchany');
+my $controlnumber = $input->param('controlnumber');
+my $stdid         = $input->param('stdid');
+my $srchany       = $input->param('srchany');
 my $op            = $input->param('op')||'';
 
 my $page            = $input->param('current_page') || 1;
 $page = $input->param('goto_page') if $input->param('changepage_goto');
 
 my ( $template, $loggedinuser, $cookie ) = get_template_and_user({
-        template_name   => "cataloguing/z3950_search.tmpl",
+        template_name   => "cataloguing/z3950_search.tt",
         query           => $input,
         type            => "intranet",
-        authnotrequired => 1,
         flagsrequired   => { catalogue => 1 },
-        debug           => 1,
 });
 
-$template->param( frameworkcode => $frameworkcode, );
 $template->param(
+    frameworkcode => $frameworkcode,
     isbn         => $isbn,
     issn         => $issn,
     lccn         => $lccn,
@@ -78,18 +72,25 @@ $template->param(
 );
 
 if ( $op ne "do_search" ) {
-    my $sth = $dbh->prepare("SELECT id,host,name,checked FROM z3950servers ORDER BY rank, name");
-    $sth->execute();
-    my $serverloop = $sth->fetchall_arrayref( {} );
+    my $schema = Koha::Database->new()->schema();
+    my $rs = $schema->resultset('Z3950server')->search(
+        {
+            recordtype => 'biblio',
+            servertype => ['zed', 'sru'],
+        },
+        {   result_class => 'DBIx::Class::ResultClass::HashRefInflator',
+            order_by     => ['rank', 'servername'],
+        },
+    );
     $template->param(
-        serverloop   => $serverloop,
+        serverloop   => [ $rs->all ],
         opsearch     => "search",
     );
     output_html_with_http_headers $input, $cookie, $template->output;
     exit;
 }
 
-my @id = $input->param('id');
+my @id = $input->multi_param('id');
 if ( @id==0 ) {
         # empty server list -> report and exit
         $template->param( emptyserverlist => 1 );
@@ -98,19 +99,19 @@ if ( @id==0 ) {
 }
 
 my $pars= {
-        random => $input->param('random') || rand(1000000000),
         biblionumber => $biblionumber,
         page => $page,
         id => \@id,
         isbn => $isbn,
+        issn => $issn,
         title => $title,
         author => $author,
         dewey => $dewey,
         subject => $subject,
         lccall => $lccall,
         controlnumber => $controlnumber,
-        stdid => 0,
-        srchany => 0,
+        stdid => $stdid,
+        srchany => $srchany,
 };
 Z3950Search($pars, $template);
 output_html_with_http_headers $input, $cookie, $template->output;