From a853b933555403260feb67dd5e67ed47ca264598 Mon Sep 17 00:00:00 2001 From: Arthur Bousquet Date: Tue, 3 Mar 2020 15:33:55 -0500 Subject: [PATCH] Bug 11361 - Fixing database and merge conflicts --- C4/Auth.pm | 1 + C4/Breeding.pm | 10 +- Koha/Schema/Result/Z3950server.pm | 8 + admin/z3950servers.pl | 2 +- installer/data/mysql/atomicupdate/bug11361.perl | 8 + .../prog/en/modules/admin/preferences/opac.pref | 6 + .../prog/en/modules/admin/z3950servers.tt | 15 + .../opac-tmpl/bootstrap/en/includes/masthead.inc | 2 + .../bootstrap/en/includes/opac-bottom.inc | 12 + .../bootstrap/en/modules/opac-z3950-search.tt | 304 +++++++++++++++++++++ opac/opac-z3950-search.pl | 117 ++++++++ 11 files changed, 480 insertions(+), 5 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug11361.perl create mode 100644 koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-z3950-search.tt create mode 100755 opac/opac-z3950-search.pl diff --git a/C4/Auth.pm b/C4/Auth.pm index bf35b00..e5711bb 100644 --- a/C4/Auth.pm +++ b/C4/Auth.pm @@ -565,6 +565,7 @@ sub get_template_and_user { OPACURLOpenInNewWindow => "" . C4::Context->preference("OPACURLOpenInNewWindow"), OPACUserCSS => "" . C4::Context->preference("OPACUserCSS"), OpacAuthorities => C4::Context->preference("OpacAuthorities"), + OpacZ3950 => C4::Context->preference("OpacZ3950"), opac_css_override => $ENV{'OPAC_CSS_OVERRIDE'}, opac_search_limit => $opac_search_limit, opac_limit_override => $opac_limit_override, diff --git a/C4/Breeding.pm b/C4/Breeding.pm index c3e6c7c..56e5fbf 100644 --- a/C4/Breeding.pm +++ b/C4/Breeding.pm @@ -126,7 +126,7 @@ The second parameter $template is a Template object. The routine uses this param =cut sub Z3950Search { - my ($pars, $template)= @_; + my ($pars, $template, $fromopac)= @_; my @id= @{$pars->{id}}; my $page= $pars->{page}; @@ -192,7 +192,7 @@ sub Z3950Search { for ($i = ($page-1)*20; $i < (($numresults < ($page*20)) ? $numresults : ($page*20)); $i++) { if ( $oResult[$k]->record($i) ) { undef $error; - ( $res, $error ) = _handle_one_result( $oResult[$k]->record($i), $servers[$k], ++$imported, $biblionumber, $xslh ); #ignores error in sequence numbering + ( $res, $error ) = _handle_one_result( $oResult[$k]->record($i), $servers[$k], ++$imported, $biblionumber, $xslh, $fromopac ); #ignores error in sequence numbering push @breeding_loop, $res if $res; push @errconn, { server => $servers[$k]->{servername}, error => $error, seq => $i+1 } if $error; } @@ -291,7 +291,7 @@ sub _build_query { } sub _handle_one_result { - my ( $zoomrec, $servhref, $seq, $bib, $xslh )= @_; + my ( $zoomrec, $servhref, $seq, $bib, $xslh, $fromopac )= @_; my $raw= $zoomrec->raw(); my $marcrecord; @@ -303,7 +303,7 @@ sub _handle_one_result { } SetUTF8Flag($marcrecord); my $error; - ( $marcrecord, $error ) = _do_xslt_proc($marcrecord, $servhref, $xslh); + ( $marcrecord, $error ) = _do_xslt_proc($marcrecord, $servhref, $xslh) unless $fromopac; my $batch_id = GetZ3950BatchId($servhref->{servername}); my $breedingid = AddBiblioToBatch($batch_id, $seq, $marcrecord, 'UTF-8', 0); @@ -317,6 +317,7 @@ sub _handle_one_result { { biblionumber => $bib, server => $servhref->{servername}, + host => $servhref->{host}, breedingid => $breedingid, }, $marcrecord) if $breedingid; return ( $row, $error ); @@ -349,6 +350,7 @@ sub _do_xslt_proc { sub _add_rowdata { my ($row, $record)=@_; my %fetch= ( + biblionumber => 'biblio.biblionumber', title => 'biblio.title', author => 'biblio.author', isbn =>'biblioitems.isbn', diff --git a/Koha/Schema/Result/Z3950server.pm b/Koha/Schema/Result/Z3950server.pm index 65ecc2e..0e798d4 100644 --- a/Koha/Schema/Result/Z3950server.pm +++ b/Koha/Schema/Result/Z3950server.pm @@ -126,6 +126,12 @@ __PACKAGE__->table("z3950servers"); is_nullable: 1 size: 255 +=head2 opac + + data_type: 'tinyint' + is_nullable: 1 + size: 1 + =cut __PACKAGE__->add_columns( @@ -175,6 +181,8 @@ __PACKAGE__->add_columns( { data_type => "longtext", is_nullable => 1 }, "attributes", { data_type => "varchar", is_nullable => 1, size => 255 }, + "opac", + { data_type => "tinyint", is_nullable => 1, size => 1 }, ); =head1 PRIMARY KEY diff --git a/admin/z3950servers.pl b/admin/z3950servers.pl index d2e85c6..8473b19 100755 --- a/admin/z3950servers.pl +++ b/admin/z3950servers.pl @@ -67,7 +67,7 @@ if( $op eq 'delete_confirmed' && $id ) { $id = 0; } elsif ( $op eq 'add_validated' ) { my @fields=qw/host port db userid password rank syntax encoding timeout - recordtype checked servername servertype sru_options sru_fields attributes + recordtype checked servername servertype sru_options sru_fields attributes opac add_xslt/; my $formdata = _form_data_hashref( $input, \@fields ); if( $id ) { diff --git a/installer/data/mysql/atomicupdate/bug11361.perl b/installer/data/mysql/atomicupdate/bug11361.perl new file mode 100644 index 0000000..fd22119 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug11361.perl @@ -0,0 +1,8 @@ +$DBversion = "XXX"; +if( CheckVersion( $DBversion ) ) { + $dbh->do("ALTER TABLE z3950servers ADD COLUMN opac TINYINT(1);"); + $dbh->do("INSERT IGNORE INTO systempreferences (variable,value,options,explanation,type) VALUES('OPACZ3950','0','','Allow patrons to search for bibliographic records in other libraries via Z39.50.','YesNo');"); + print "Add opac column to z3950servers table."; + print "Add OPACZ3950 preference."; + SetVersion($DBversion); +} diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref index 9c9b2b7..5a69467 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref @@ -443,6 +443,12 @@ OPAC: no: "Don't allow" - patrons to search your authority records. - + - pref: OpacZ3950 + choices: + yes: Allow + no: "Don't allow" + - patrons to search for bibliographic records in other libraries via Z39.50. + - - pref: opacbookbag choices: yes: Allow diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/z3950servers.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/z3950servers.tt index f2df3a8..9b86816 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/z3950servers.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/z3950servers.tt @@ -79,6 +79,13 @@ [% END %] +
  • + [% IF ( server.opac ) %] + + [% ELSE %] + + [% END %] +
  • [% IF (server.servertype||type) == 'zed' %] @@ -161,8 +168,12 @@ You searched for [% searchfield | html %] [% END %] +<<<<<<< f7630d746947b82b40098be4cbac266e4a494553 +======= + +>>>>>>> Bug11361 - opac z3950 search [% FOREACH loo IN loop %] @@ -175,7 +186,11 @@ Authority [% END %] +<<<<<<< f7630d746947b82b40098be4cbac266e4a494553 +======= + +>>>>>>> Bug11361 - opac z3950 search
    TargetHostname/PortDatabaseUseridPasswordPreselectedRankSyntaxEncodingTimeoutRecord typeAttributesActions
    TargetHostname/PortDatabaseUseridPasswordPreselectedRankSyntaxEncodingTimeoutRecord typeOpacOptions
    [% loo.attributes | html %][% IF loo.opac %]X[% END %]