[Koha-patches] [PATCH] [bug #2829][Replace Previous] add a plugin for 010$a field and 210$c
Nahuel ANGELINETTI
nahuel.angelinetti at biblibre.com
Tue Dec 2 13:03:30 CET 2008
I forget "use warning", I resend it in a few minutes.
bests,
Le Tue, 2 Dec 2008 13:00:22 +0100,
Nahuel Angelinetti <nahuel.angelinetti at biblibre.com> a écrit :
> This plugin use the 'ISBN' field(010$a) to search the
> "publishercode"(editor) and set it in as 210$c. ---
> cataloguing/value_builder/unimarc_field_010.pl | 117
> ++++++++++++++++++++ .../en/modules/cataloguing/value_builder/ajax.tmpl
> | 1 + 2 files changed, 118 insertions(+), 0 deletions(-)
> create mode 100644 cataloguing/value_builder/unimarc_field_010.pl
> create mode 100644
> koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/ajax.tmpl
>
> diff --git a/cataloguing/value_builder/unimarc_field_010.pl
> b/cataloguing/value_builder/unimarc_field_010.pl new file mode 100644
> index 0000000..07b8045
> --- /dev/null
> +++ b/cataloguing/value_builder/unimarc_field_010.pl
> @@ -0,0 +1,117 @@
> +#!/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., 59 Temple Place, +# Suite 330, Boston, MA 02111-1307 USA
> +
> +use strict;
> +use C4::Auth;
> +use CGI;
> +use C4::Context;
> +
> +
> +=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 $res="
> + <script type='text/javascript'>
> + function Focus$field_number() {
> + return 1;
> + }
> +
> + function Blur$field_number() {
> + var isbn = document.getElementById('$field_number');
> + var url =
> '../cataloguing/plugin_launcher.pl?plugin_name=unimarc_field_010.pl&isbn='
> + isbn.value;
> + var blurcallback010 =
> + {
> + success: function(o){
> + var elems =
> document.getElementsByTagName('input');
> + for( i = 0 ; elems[i] ; i++ )
> + {
> +
> if(elems[i].id.match(/^tag_210_subfield_c/)) {
> + elems[i].value = o.responseText;
> + return 1;
> + }
> + }
> + }
> + }
> + var transaction =
> YAHOO.util.Connect.asyncRequest('GET',url, blurcallback010, null);
> + return 1;
> + }
> +
> + function Clic$field_number() {
> + return 1;
> + }
> + </script>
> + ";
> +
> + return ($field_number,$res);
> +}
> +
> +sub plugin {
> + my ($input) = @_;
> + my $isbn = $input->param('isbn');
> +
> + my ($template, $loggedinuser, $cookie)
> + = get_template_and_user({template_name =>
> "cataloguing/value_builder/ajax.tmpl",
> + query => $input,
> + type => "intranet",
> + authnotrequired => 0,
> + flagsrequired => {editcatalogue
> => 1},
> + debug => 1,
> + });
> +
> +
> + my $dbh = C4::Context->dbh;
> + my $seg1;
> +
> + if (length ($isbn)<13){
> + if ( substr( $isbn, 0, 1 ) <= 7 ) {
> + $seg1 = substr( $isbn, 0, 1 );
> + }elsif ( substr( $isbn, 0, 2 ) <= 94 ) {
> + $seg1 = substr( $isbn, 0, 2 );
> + }elsif ( substr( $isbn, 0, 3 ) <= 995 ) {
> + $seg1 = substr( $isbn, 0, 3 );
> + }elsif ( substr( $isbn, 0, 4 ) <= 9989 ) {
> + $seg1 = substr( $isbn, 0, 4 );
> + }else {
> + $seg1 = substr( $isbn, 0, 5 );
> + }
> + }
> +
> + $seg1 .= "%";
> + my $sth = $dbh->prepare('SELECT publishercode FROM biblioitems
> WHERE isbn LIKE ? LIMIT 1');
> + $sth->execute($seg1);
> +
> + if( (my $publishercode) = $sth->fetchrow )
> + {
> + warn $publishercode;
> + $template->param(return => $publishercode);
> + }
> + output_html_with_http_headers $input, $cookie, $template->output;
> +}
> +1;
> diff --git
> a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/ajax.tmpl
> b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/ajax.tmpl
> new file mode 100644 index 0000000..fa44f11 --- /dev/null
> +++
> b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/ajax.tmpl
> @@ -0,0 +1 @@ +<!-- TMPL_IF name="return" --><!-- TMPL_VAR
> name="return" --><!--/TMPL_IF--> \ No newline at end of file
More information about the Koha-patches
mailing list