From 231d05dd6aa2668bd4ce478e334e90a96a0117c9 Mon Sep 17 00:00:00 2001 From: Chris Cormack Date: Mon, 7 Feb 2011 09:24:47 +1300 Subject: [PATCH] Bug 5692 : Create 210c alternate plugin and use zebra instead of mysql Squashed commit of the following: commit 84e05d48ca1b09a33509204251ee605d2bf8069d Author: Matthias Meusburger Date: Tue Oct 5 16:47:00 2010 +0200 MT4586: Display fix commit e7aa56ab53f362399663f4b2656832bb24d938cd Author: Matthias Meusburger Date: Fri Oct 1 17:33:03 2010 +0200 MT4586: Fallback on mysql search for plugins commit de28b079e27af9a41eb9772366722a0f39b78ca8 Author: Matthias Meusburger Date: Wed Sep 29 14:59:29 2010 +0200 MT4586: Use zebra instead of mysql for publisher and collectiontitle searches commit f89afa98ba0eee9b41f06add34cf5621b4668bb8 Author: Matthias Meusburger Date: Fri Sep 24 16:51:26 2010 +0200 MT4586: Adjust query delay commit d8d4d4ab111659ef70b82c35a45c1d23b09fab25 Author: Matthias Meusburger Date: Fri Sep 24 11:43:12 2010 +0200 MT4586: Adds an alternative cataloguing plugin for 210$c --- C4/Search.pm | 3 +- .../value_builder/unimarc_field_210c_bis.pl | 109 ++++++++++++++++++++ cataloguing/value_builder/unimarc_field_225a.pl | 2 +- cataloguing/ysearchzebra.pl | 52 +++++++++ .../value_builder/unimarc_field_210c_bis.tmpl | 73 +++++++++++++ 5 files changed, 237 insertions(+), 2 deletions(-) create mode 100755 cataloguing/value_builder/unimarc_field_210c_bis.pl create mode 100644 cataloguing/ysearchzebra.pl create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_field_210c_bis.tmpl diff --git a/C4/Search.pm b/C4/Search.pm index a469948..fea5baf 100644 --- a/C4/Search.pm +++ b/C4/Search.pm @@ -2622,7 +2622,8 @@ sub GetDistinctValues { return $elements; } else { - $string||= qq(""); + $string = "=" . $string if ($fieldname); + $string||= qq(""); my @servers=qw; my (@zconns,@results); for ( my $i = 0 ; $i < @servers ; $i++ ) { diff --git a/cataloguing/value_builder/unimarc_field_210c_bis.pl b/cataloguing/value_builder/unimarc_field_210c_bis.pl new file mode 100755 index 0000000..5ecaf83 --- /dev/null +++ b/cataloguing/value_builder/unimarc_field_210c_bis.pl @@ -0,0 +1,109 @@ +#!/usr/bin/perl + +# Copyright 2000-2002 Katipo Communications +# +# 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 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. + +=head1 SYNOPSIS + +This plugin is used to map isbn/editor with collection. +It need : + in thesaurus, a category named EDITORS + in this category, datas must be entered like following : + isbn separator editor separator collection. + for example : + 2204 -- Cerf -- Cogitatio fidei + 2204 -- Cerf -- Le Magistere de l'Eglise + 2204 -- Cerf -- Lectio divina + 2204 -- Cerf -- Lire la Bible + 2204 -- Cerf -- Pour lire + 2204 -- Cerf -- Sources chretiennes + + when the user clic on ... on 225a line, the popup shows the list of collections from the selected editor + if the biblio has no isbn, then the search if done on editor only + If the biblio ha an isbn, the search is done on isbn and editor. It's faster. + +=over 2 + +=cut + +use strict; + +#use warnings; FIXME - Bug 2505 +use C4::Auth; +use CGI; +use C4::Context; + +use C4::AuthoritiesMarc; +use C4::Output; + +=head1 + +plugin_parameters : other parameters added when the plugin is called by the dopop function + +=cut + +sub plugin_parameters { + my ( $dbh, $record, $tagslib, $i, $tabloop ) = @_; + return ""; +} + +sub plugin_javascript { + my ( $dbh, $record, $tagslib, $field_number, $tabloop ) = @_; + my $function_name = $field_number; + my $res = " + +"; + + return ( $function_name, $res ); +} + +sub plugin { + my ($input) = @_; + my $index = $input->param('index'); + my $result = $input->param('result'); + my $editor_found = $input->param('editor_found'); + my $authoritysep = C4::Context->preference("authoritysep"); + + my ( $template, $loggedinuser, $cookie ) = get_template_and_user( + { template_name => "cataloguing/value_builder/unimarc_field_210c_bis.tmpl", + query => $input, + type => "intranet", + authnotrequired => 0, + flagsrequired => { editcatalogue => '*' }, + debug => 1, + } + ); + + $template->param( + index => $index, + ); + output_html_with_http_headers $input, $cookie, $template->output; +} + +1; diff --git a/cataloguing/value_builder/unimarc_field_225a.pl b/cataloguing/value_builder/unimarc_field_225a.pl index acd02e1..daba32e 100755 --- a/cataloguing/value_builder/unimarc_field_225a.pl +++ b/cataloguing/value_builder/unimarc_field_225a.pl @@ -94,7 +94,7 @@ sub plugin_javascript { } defaultvalue = document.getElementById(\"$field_number\").value; - window.open(\"../cataloguing/plugin_launcher.pl?plugin_name=unimarc_field_225a.pl&index=\"+index+\"&result=\"+defaultvalue+\"&editor_found=\"+editor_found,\"unimarc225a\",'width=500,height=200,toolbar=false,scrollbars=no'); + window.open(\"../cataloguing/plugin_launcher.pl?plugin_name=unimarc_field_225a.pl&index=\"+index+\"&result=\"+defaultvalue+\"&editor_found=\"+editor_found,\"unimarc225a\",'width=500,height=400,toolbar=false,scrollbars=no'); } diff --git a/cataloguing/ysearchzebra.pl b/cataloguing/ysearchzebra.pl new file mode 100644 index 0000000..3a626fd --- /dev/null +++ b/cataloguing/ysearchzebra.pl @@ -0,0 +1,52 @@ +#!/usr/bin/perl + +# This software is placed under the gnu General Public License, v2 (http://www.gnu.org/licenses/gpl.html) + +# Copyright 2010 BibLibre +# +# 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 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. + +=head1 ysearch.pl + + +=cut + +use strict; + +use CGI; +use C4::Context; +use C4::Search; +use C4::Auth qw/check_cookie_auth/; + +my $input = new CGI; +my $query = $input->param('query'); +my $index = $input->param('index'); + +#binmode STDOUT, ":utf8"; +print $input->header( -type => 'text/plain', -charset => 'UTF-8' ); + +my ( $auth_status, $sessionID ) = check_cookie_auth( $input->cookie('CGISESSID'), { cataloguing => '*' } ); +if ( $auth_status ne "ok" ) { + exit 0; +} + +my $results = GetDistinctValues($index, $query); + +foreach (@$results) { + print $_->{'value'} . "\n"; + +} + diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_field_210c_bis.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_field_210c_bis.tmpl new file mode 100644 index 0000000..93f986e --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_field_210c_bis.tmpl @@ -0,0 +1,73 @@ + + + + UNIMARC_Field 225a builder + + + + + /css/staff-global.css" /> + + + +