Bugzilla – Attachment 3733 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]
new plugin 210c
0001-Bug-5692-new-210c-plugin.patch (text/plain), 11.46 KB, created by
Jonathan Druart
on 2011-04-06 10:05:54 UTC
(
hide
)
Description:
new plugin 210c
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2011-04-06 10:05:54 UTC
Size:
11.46 KB
patch
obsolete
>From 6f1d5f6abb9ee29912f97f0d6e338b63dba696a7 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@biblibre.com> >Date: Wed, 6 Apr 2011 11:37:36 +0200 >Subject: [PATCH] Bug 5692: new 210c plugin > >--- > cataloguing/plugin_launcher.pl | 16 ++-- > .../value_builder/unimarc_field_210c_bis.pl | 110 ++++++++++++++++++++ > cataloguing/ysearch.pl | 78 ++++++++++++++ > .../value_builder/unimarc_field_210c_bis.tmpl | 75 +++++++++++++ > 4 files changed, 271 insertions(+), 8 deletions(-) > create mode 100755 cataloguing/value_builder/unimarc_field_210c_bis.pl > create mode 100755 cataloguing/ysearch.pl > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_field_210c_bis.tmpl > >diff --git a/cataloguing/plugin_launcher.pl b/cataloguing/plugin_launcher.pl >index 9a264ab..f33ef3f 100755 >--- a/cataloguing/plugin_launcher.pl >+++ b/cataloguing/plugin_launcher.pl >@@ -1,6 +1,5 @@ > #!/usr/bin/perl > >- > # Copyright 2000-2002 Katipo Communications > # > # This file is part of Koha. >@@ -19,20 +18,21 @@ > # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. > > use strict; >+ > #use warnings; FIXME - Bug 2505 > use CGI; > use C4::Context; > use C4::Output; > >-my $input = new CGI; >-my $plugin_name="cataloguing/value_builder/".$input->param("plugin_name"); >+my $input = new CGI; >+my $plugin_name = "cataloguing/value_builder/" . $input->param("plugin_name"); > > # opening plugin. Just check wether we are on a developper computer on a production one > # (the cgidir differs) >-my $cgidir = C4::Context->intranetdir ."/cgi-bin"; >-my $vbdir = "$cgidir/cataloguing/value_builder"; >-unless (-r $vbdir and -d $vbdir) { >- $cgidir = C4::Context->intranetdir; >+my $cgidir = C4::Context->intranetdir . "/cgi-bin"; >+my $vbdir = "$cgidir/cataloguing/value_builder"; >+unless ( -r $vbdir and -d $vbdir ) { >+ $cgidir = C4::Context->intranetdir; > } >-do $cgidir."/".$plugin_name; >+do $cgidir . "/" . $plugin_name; > &plugin($input); >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..420fa8f >--- /dev/null >+++ b/cataloguing/value_builder/unimarc_field_210c_bis.pl >@@ -0,0 +1,110 @@ >+#!/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"); >+ warn Data::Dumper::Dumper $index; >+ >+ 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/ysearch.pl b/cataloguing/ysearch.pl >new file mode 100755 >index 0000000..5cd0205 >--- /dev/null >+++ b/cataloguing/ysearch.pl >@@ -0,0 +1,78 @@ >+#!/usr/bin/perl >+ >+# This software is placed under the gnu General Public License, v2 (http://www.gnu.org/licenses/gpl.html) >+ >+# Copyright 2007 Tamil s.a.r.l. >+# >+# 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 warnings; FIXME - Bug 2505 >+use CGI; >+use C4::Context; >+use C4::Auth qw/check_cookie_auth/; >+ >+my $input = new CGI; >+my $query = $input->param('query'); >+my $table = $input->param('table'); >+my $field = $input->param('field'); >+ >+# Prevent from disclosing data >+die() unless ($table eq "biblioitems"); >+ >+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 $dbh = C4::Context->dbh; >+my $sql = qq(SELECT distinct $field >+ FROM $table >+ WHERE $field LIKE ? OR $field LIKE ? or $field LIKE ?); >+$sql .= qq( ORDER BY $field); >+my $sth = $dbh->prepare($sql); >+$sth->execute("$query%", "% $query%", "%-$query%"); >+ >+while ( my $rec = $sth->fetchrow_hashref ) { >+ print nsb_clean($rec->{$field}) . "\n"; >+} >+ >+sub nsb_clean { >+ my $NSB = '\x88' ; # NSB : begin Non Sorting Block >+ my $NSE = '\x89' ; # NSE : Non Sorting Block end >+ my $NSB2 = '\x98' ; # NSB : begin Non Sorting Block >+ my $NSE2 = '\x9C' ; # NSE : Non Sorting Block end >+ # handles non sorting blocks >+ my ($string) = @_ ; >+ $_ = $string ; >+ s/$NSB//g ; >+ s/$NSE//g ; >+ s/$NSB2//g ; >+ s/$NSE2//g ; >+ $string = $_ ; >+ >+ return($string) ; >+} >+ >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..da95963 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_field_210c_bis.tmpl >@@ -0,0 +1,75 @@ >+<!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 = false; >+ >+ // 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; >+ this.oAutoComp.maxResultsDisplayed = 1000; >+} >+}); >+//]]> >+</script> >+ <div id="mainbloc"> >+ >+<div id="plugin"> >+<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> >+</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