fixes, improvements and doc
authortipaul <tipaul>
Thu, 23 Jan 2003 12:30:35 +0000 (12:30 +0000)
committertipaul <tipaul>
Thu, 23 Jan 2003 12:30:35 +0000 (12:30 +0000)
value_builder/unimarc_field_210c.pl
value_builder/unimarc_field_225a.pl

index 6c7644b..65960cd 100644 (file)
@@ -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<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=thesaurus_popup.pl?category=EDITORS&index=$index\"></html>";
+       my $result = $input->param("result");
+       print "Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=thesaurus_popup.pl?category=EDITORS&index=$index&result=$result\"></html>";
        exit;
 }
 
index 6b38bdf..f04d1bd 100644 (file)
 # 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;
                }