From 6b839bdca2fded3d5d31ade22b500be22ebd3041 Mon Sep 17 00:00:00 2001 From: tipaul Date: Thu, 23 Jan 2003 12:30:35 +0000 Subject: [PATCH] fixes, improvements and doc --- value_builder/unimarc_field_210c.pl | 5 ++-- value_builder/unimarc_field_225a.pl | 46 ++++++++++++++++++++++++----- 2 files changed, 42 insertions(+), 9 deletions(-) diff --git a/value_builder/unimarc_field_210c.pl b/value_builder/unimarc_field_210c.pl index 6c7644b898..65960cd702 100644 --- a/value_builder/unimarc_field_210c.pl +++ b/value_builder/unimarc_field_210c.pl @@ -96,7 +96,7 @@ function Blur$function_name(subfield_managed) { } function Clic$function_name(subfield_managed) { - defaultvalue=document.forms[0].field_value[1].value; + defaultvalue=escape(document.forms[0].field_value[subfield_managed].value); newin=window.open(\"../plugin_launcher.pl?plugin_name=unimarc_field_210c.pl&result=\"+defaultvalue+\"&index=$field_number\",\"value builder\",'width=500,height=400,toolbar=false,scrollbars=yes'); } @@ -114,7 +114,8 @@ plugin : the true value_builded. The screen that is open in the popup window. sub plugin { my ($input) = @_; my $index = $input->param("index"); - print "Content-Type: text/html\n\n"; + my $result = $input->param("result"); + print "Content-Type: text/html\n\n"; exit; } diff --git a/value_builder/unimarc_field_225a.pl b/value_builder/unimarc_field_225a.pl index 6b38bdf92f..f04d1bd29e 100644 --- a/value_builder/unimarc_field_225a.pl +++ b/value_builder/unimarc_field_225a.pl @@ -18,6 +18,28 @@ # 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 +=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 Magistère de l'Eglise + 2204 -- Cerf -- Lectio divina + 2204 -- Cerf -- Lire la Bible + 2204 -- Cerf -- Pour lire + 2204 -- Cerf -- Sources chrétiennes + + 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 C4::Auth; @@ -84,13 +106,23 @@ my ($input) = @_; debug => 1, }); # builds collection list : search isbn and editor, in parent, then load collections from bibliothesaurus table - my $sth = $dbh->prepare("select stdlib from bibliothesaurus where father=? and category='EDITORS'"); - my @splited = split //, $isbn_found; - my $isbn_rebuild=''; - my @collections; - foreach my $x (@splited) { - $isbn_rebuild.=$x; - $sth->execute("$isbn_rebuild $authoritysep $editor_found $authoritysep"); + # if there is an isbn, complete search + my @collections; + if ($isbn_found) { + my $sth = $dbh->prepare("select stdlib from bibliothesaurus where father=? and category='EDITORS'"); + my @splited = split //, $isbn_found; + my $isbn_rebuild=''; + foreach my $x (@splited) { + $isbn_rebuild.=$x; + $sth->execute("$isbn_rebuild $authoritysep $editor_found $authoritysep"); + while (my ($line)= $sth->fetchrow) { + push @collections,$line; + } + } + } else { + # if there is no isbn, search with % + my $sth = $dbh->prepare("select stdlib from bibliothesaurus where father like ? and category='EDITORS'"); + $sth->execute("\%$authoritysep $editor_found $authoritysep"); while (my ($line)= $sth->fetchrow) { push @collections,$line; } -- 2.39.2