Bugzilla – Attachment 3066 Details for
Bug 5692
Adapt cataloguing plugin unimarc 210$c for MARC21 260$b and normac
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Proposed Patch
0001-Bug-5692-Create-210c-alternate-plugin-and-use-zebra-.patch (text/plain), 11.71 KB, created by
Chris Cormack
on 2011-02-06 20:54:19 UTC
(
hide
)
Description:
Proposed Patch
Filename:
MIME Type:
Creator:
Chris Cormack
Created:
2011-02-06 20:54:19 UTC
Size:
11.71 KB
patch
obsolete
>From 231d05dd6aa2668bd4ce478e334e90a96a0117c9 Mon Sep 17 00:00:00 2001 >From: Chris Cormack <chrisc@catalyst.net.nz> >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 <matthias.meusburger@biblibre.com> >Date: Tue Oct 5 16:47:00 2010 +0200 > > MT4586: Display fix > >commit e7aa56ab53f362399663f4b2656832bb24d938cd >Author: Matthias Meusburger <matthias.meusburger@biblibre.com> >Date: Fri Oct 1 17:33:03 2010 +0200 > > MT4586: Fallback on mysql search for plugins > >commit de28b079e27af9a41eb9772366722a0f39b78ca8 >Author: Matthias Meusburger <matthias.meusburger@biblibre.com> >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 <matthias.meusburger@biblibre.com> >Date: Fri Sep 24 16:51:26 2010 +0200 > > MT4586: Adjust query delay > >commit d8d4d4ab111659ef70b82c35a45c1d23b09fab25 >Author: Matthias Meusburger <matthias.meusburger@biblibre.com> >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<biblioserver authorityserver>; > 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 = " >+ <script type=\"text/javascript\"> >+ function Focus$function_name(subfield_managed) { >+ return 1; >+ } >+ >+ function Blur$function_name(subfield_managed) { >+ return 1; >+ } >+ >+ function Clic$function_name(index) { >+ window.open(\"../cataloguing/plugin_launcher.pl?plugin_name=unimarc_field_210c_bis.pl&index=\"+index,\"unimarc210c\",'width=500,height=400,toolbar=false,scrollbars=no'); >+ } >+ </script> >+"; >+ >+ 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'); > > } > </script> >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 @@ >+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" >+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> >+<html xmlns="http://www.w3.org/1999/xhtml"> >+<head> >+ <title>UNIMARC_Field 225a builder</title> >+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> >+ <script type="text/javascript" src="<!-- TMPL_VAR NAME="yuipath" -->/utilities/utilities.js"></script> >+ <script type="text/javascript" src="<!-- TMPL_VAR NAME="yuipath" -->/datasource/datasource.js"></script> >+ <script type="text/javascript" src="<!-- TMPL_VAR NAME="yuipath" -->/autocomplete/autocomplete-min.js"></script> >+ <link rel="stylesheet" type="text/css" href="<!-- TMPL_VAR NAME="themelang" -->/css/staff-global.css" /> >+ >+</head> >+<body> >+<div id="header_search"> >+<script type="text/javascript"> >+//<![CDATA[ >+YAHOO.util.Event.onContentReady("header_search", function() { >+ new function() { >+ // Define a custom formatter function >+ this.fnCustomFormatter = function(oResultItem, sQuery) { >+ var name = oResultItem[0]; >+ var aMarkup = [ >+ "<div class=\"sample-result\">", >+ name, >+ "<\/div>"]; >+ return (aMarkup.join("")); >+ }; >+ >+ // Instantiate one XHR DataSource and define schema as an array: >+ // ["Record Delimiter", >+ // "Field Delimiter"] >+ this.oACDS = new YAHOO.widget.DS_XHR("/cgi-bin/koha/cataloguing/ysearch.pl", ["\n", "\t"]); >+ this.oACDS.scriptQueryAppend = "table=biblioitems&field=publishercode"; >+ this.oACDS.responseType = YAHOO.widget.DS_XHR.TYPE_FLAT; >+ this.oACDS.maxCacheEntries = 60; >+ this.oACDS.queryMatchSubset = true; >+ >+ // Instantiate first AutoComplete >+ var myInput = document.getElementById('findvalue'); >+ var myContainer = document.getElementById('yvaluecontainer'); >+ this.oAutoComp = new YAHOO.widget.AutoComplete(myInput,myContainer,this.oACDS); >+ //this.oAutoComp.delimChar = ";"; >+ this.oAutoComp.queryDelay = 1; >+ this.oAutoComp.formatResult = this.fnCustomFormatter; >+} >+}); >+//]]> >+</script> >+ <div id="mainbloc"> >+ >+ >+<div class="autocomplete"> >+ <form name="f_pop" onsubmit="javascript:report()" action=""> >+ <div id="borrowerautocomplete" class="autocomplete"> >+ <input autocomplete="off" id="findvalue" name="findvalue" size="40" class="focus" type="text" /><br /><br /> >+ <input id="ysearchsubmit" type="submit" class="submit" value="Submit" /> >+ <div id="yvaluecontainer"></div> >+ </div> >+ </form> >+ </div> >+</div> >+ <script type="text/javascript"> >+ function report() { >+ var doc = opener.document; >+ var field = doc.getElementById("<!-- TMPL_VAR NAME='index'-->"); >+ field.value = document.f_pop.findvalue.value; >+ >+ window.close(); >+ return false; >+ } >+ </script> >+</body> >+</html> >-- >1.7.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 5692
:
3066
|
3733