[Koha-cvs] koha/acqui.simple additem.pl [rel_2_2]

Henri-Damien LAURENT laurenthdl at alinto.com
Mon Jul 16 17:27:14 CEST 2007


CVSROOT:	/sources/koha
Module name:	koha
Branch:		rel_2_2
Changes by:	Henri-Damien LAURENT <hdl>	07/07/16 15:27:14

Modified files:
	acqui.simple   : additem.pl 

Log message:
	additem 
	multiple subfield allowed.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/acqui.simple/additem.pl?cvsroot=koha&only_with_tag=rel_2_2&r1=1.27.2.26&r2=1.27.2.27

Patches:
Index: additem.pl
===================================================================
RCS file: /sources/koha/koha/acqui.simple/Attic/additem.pl,v
retrieving revision 1.27.2.26
retrieving revision 1.27.2.27
diff -u -b -r1.27.2.26 -r1.27.2.27
--- additem.pl	14 Apr 2007 18:59:00 -0000	1.27.2.26
+++ additem.pl	16 Jul 2007 15:27:14 -0000	1.27.2.27
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# $Id: additem.pl,v 1.27.2.26 2007/04/14 18:59:00 kados Exp $
+# $Id: additem.pl,v 1.27.2.27 2007/07/16 15:27:14 hdl Exp $
 
 # Copyright 2000-2002 Katipo Communications
 #
@@ -131,6 +131,35 @@
 		$nextop="additem";
 	}
 #------------------------------------------------------------------------------------------------------------------------------
+} elsif ($op eq "addfield") {
+#------------------------------------------------------------------------------------------------------------------------------
+	my $addedfield = $input->param('addfield_field');
+	my $cntrepeatfield=$input->param('repeat_field');
+    $cntrepeatfield=1 unless ($cntrepeatfield);
+    my $tagaddfield_subfield = $input->param('addfield_subfield');
+	my @tags = $input->param('tag');
+	my @subfields = $input->param('subfield');
+	my @values = $input->param('field_value');
+	# build indicator hash.
+	my @ind_tag = $input->param('ind_tag');
+	my @indicator = $input->param('indicator');
+	my $xml = MARChtml2xml(\@tags,\@subfields,\@values,\@indicator,\@ind_tag);
+    my $record;
+	if (C4::Context->preference('marcflavour') eq "UNIMARC") {
+        my %indicators;
+        for (my $i=0;$i<=$#ind_tag;$i++) {
+            $indicators{$ind_tag[$i]} = $indicator[$i];
+        }
+		$record = MARChtml2marc($dbh,\@tags,\@subfields,\@values,%indicators);
+	} else {
+		my $xml = MARChtml2xml(\@tags,\@subfields,\@values,\@indicator,\@ind_tag);
+		$record=MARC::Record->new_from_xml($xml,C4::Context->preference('TemplateEncoding'),C4::Context->preference('marcflavour'));
+	}
+	for (my $i=1;$i<=$cntrepeatfield;$i++){
+        my $field = MARC::Field->new("$addedfield",'','',"$tagaddfield_subfield" => "");
+        $record->append_fields($field);
+    }
+#------------------------------------------------------------------------------------------------------------------------------
 } elsif ($op eq "saveitem") {
 #------------------------------------------------------------------------------------------------------------------------------
 	# rebuild
@@ -252,7 +281,7 @@
 my @loop_data =();
 my $i=0;
 my $authorised_values_sth = $dbh->prepare("select authorised_value,lib from authorised_values where category=? order by lib");
-
+my $index=0;
 foreach my $tag (sort keys %{$tagslib}) {
 	my $previous_tag = '';
 # loop through each subfield
@@ -267,6 +296,7 @@
 		$subfield_data{mandatory}=$tagslib->{$tag}->{$subfield}->{mandatory};
 		$subfield_data{repeatable}=$tagslib->{$tag}->{$subfield}->{repeatable};
 		$subfield_data{hidden}= "display:none" if $tagslib->{$tag}->{$subfield}->{hidden};
+		$subfield_data{index}= $index++;
 		my ($x,$value);
 		($x,$value) = find_value($tag,$subfield,$itemrecord) if ($itemrecord);
 		$value =~ s/"/&quot;/g;
@@ -352,6 +382,7 @@
 		}
 #		$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\">";
 		push(@loop_data, \%subfield_data);
+# 		use Data::Dumper;warn Dumper(@loop_data);
 		$i++
 	}
 }





More information about the Koha-cvs mailing list