[Koha-cvs] CVS: koha/acqui.simple addbiblio.pl,1.19,1.20

Paul POULAIN tipaul at users.sourceforge.net
Wed Feb 12 12:03:07 CET 2003


Update of /cvsroot/koha/koha/acqui.simple
In directory sc8-pr-cvs1:/tmp/cvs-serv29725/acqui.simple

Modified Files:
	addbiblio.pl 
Log Message:
Support for 000 -> 010 fields.
Those fields doesn't have subfields.
In koha, we will use a specific "trick" : fields <10 will have a "virtual" subfield : "@".
Note it's only virtual : when rebuilding the MARC::Record, the koha API handle correctly "@" subfields => the resulting MARC record has a 00x field without subfield.

Index: addbiblio.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/addbiblio.pl,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -r1.19 -r1.20
*** addbiblio.pl	3 Feb 2003 18:46:03 -0000	1.19
--- addbiblio.pl	12 Feb 2003 11:03:05 -0000	1.20
***************
*** 48,60 ****
  sub find_value {
  	my ($tagfield,$insubfield,$record) = @_;
- #	warn "$tagfield / $insubfield // ";
  	my $result;
  	my $indicator;
! 	foreach my $field ($record->field($tagfield)) {
! 		my @subfields = $field->subfields();
! 		foreach my $subfield (@subfields) {
! 			if (@$subfield[0] eq $insubfield) {
! 				$result .= @$subfield[1];
! 				$indicator = $field->indicator(1).$field->indicator(2);
  			}
  		}
--- 48,63 ----
  sub find_value {
  	my ($tagfield,$insubfield,$record) = @_;
  	my $result;
  	my $indicator;
! 	if ($tagfield <10) {
! 		$result = $record->field($tagfield)->data();
! 	} else {
! 		foreach my $field ($record->field($tagfield)) {
! 			my @subfields = $field->subfields();
! 			foreach my $subfield (@subfields) {
! 				if (@$subfield[0] eq $insubfield) {
! 					$result .= @$subfield[1];
! 					$indicator = $field->indicator(1).$field->indicator(2);
! 				}
  			}
  		}
***************
*** 164,234 ****
  	my @loop_data = ();
  	foreach my $tag (sort(keys (%{$tagslib}))) {
! 	    my $previous_tag = '';
! 	    my @subfields_data;
! 	    my $indicator;
! 
! 	    # loop through each subfield
! 	    foreach my $subfield (sort(keys %{$tagslib->{$tag}})) {
! 		next if subfield_is_koha_internal_p($subfield);
! 		next if ($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
! 		my %subfield_data;
! 		$subfield_data{tag}=$tag;
! 		$subfield_data{subfield}=$subfield;
! 		$subfield_data{marc_lib}="<DIV id=\"error$i\">".$tagslib->{$tag}->{$subfield}->{lib}."</div>";
! 		$subfield_data{tag_mandatory}=$tagslib->{$tag}->{mandatory};
! 		$subfield_data{mandatory}=$tagslib->{$tag}->{$subfield}->{mandatory};
! 		$subfield_data{repeatable}=$tagslib->{$tag}->{$subfield}->{repeatable};
! 		# if breeding is not empty
! 		if ($record ne -1) {
! 		    my ($x,$value) = find_value($tag,$subfield,$record);
! 		    $value=char_decode($value) unless ($is_a_modif);
! 		    $indicator = $x if $x; #XXX
! 		    if ($tagslib->{$tag}->{$subfield}->{authorised_value}) {
! 			$subfield_data{marc_value}= build_authorized_values_list($tag, $subfield, $value, $dbh, $authorised_values_sth);
! 		    } elsif ($tagslib->{$tag}->{$subfield}->{thesaurus_category}) {
! 			$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\"  size=47 maxlength=255> <a href=\"javascript:Dopop('../thesaurus_popup.pl?category=$tagslib->{$tag}->{$subfield}->{thesaurus_category}&index=$i',$i)\">...</a>"; #"
! 		    } elsif ($tagslib->{$tag}->{$subfield}->{'value_builder'}) {
! 			my $plugin="../value_builder/".$tagslib->{$tag}->{$subfield}->{'value_builder'};
! 			require $plugin;
! 			my $extended_param = plugin_parameters($dbh,$record,$tagslib,$i,$tabloop);
! 			my ($function_name,$javascript) = plugin_javascript($dbh,$record,$tagslib,$i,$tabloop);
! 			$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\"  value=\"$value\" size=47 maxlength=255 OnFocus=\"javascript:Focus$function_name($i)\" OnBlur=\"javascript:Blur$function_name($i)\"> <a href=\"javascript:Clic$function_name($i)\">...</a> $javascript";
! 		    } else {
! 			$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\" value=\"$value\" size=50 maxlength=255>";
! 		    }
! 
  		# if breeding is empty
! 		} else {
! 		    my ($x,$value);
! 		    ($x,$value) = find_value($tag,$subfield,$record) if ($record ne -1);
! 		    $value=char_decode($value) unless ($is_a_modif);
! 		    if ($tagslib->{$tag}->{$subfield}->{authorised_value}) {
! 			$subfield_data{marc_value}= build_authorized_values_list($tag, $subfield, $value, $dbh, $authorised_values_sth);
! 		    } elsif ($tagslib->{$tag}->{$subfield}->{thesaurus_category}) {
! 			$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\"  size=47 maxlength=255 DISABLE READONLY> <a href=\"javascript:Dopop('../thesaurus_popup.pl?category=$tagslib->{$tag}->{$subfield}->{thesaurus_category}&index=$i',$i)\">...</a>";
! 		    } elsif ($tagslib->{$tag}->{$subfield}->{'value_builder'}) {
! 			my $plugin="../value_builder/".$tagslib->{$tag}->{$subfield}->{'value_builder'};
! 			require $plugin;
! 			my $extended_param = plugin_parameters($dbh,$record,$tagslib,$i,$tabloop);
! 			my ($function_name,$javascript) = plugin_javascript($dbh,$record,$tagslib,$i,$tabloop);
! 			$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\"  DISABLE READONLY size=47 maxlength=255 OnFocus=\"javascript:Focus$function_name($i)\" OnBlur=\"javascript:Blur$function_name($i)\"> <a href=\"javascript:Clic$function_name($i)\">...</a> $javascript";
! 		    } else {
! 			$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\" size=50 maxlength=255>";
! 		    }
  		}
! 		push(@subfields_data, \%subfield_data);
! 		$i++;
! 	    }
! 	    if ($#subfields_data >= 0) {
! 		my %tag_data;
! 		$tag_data{tag} = $tag;
! 		$tag_data{tag_lib} = $tagslib->{$tag}->{lib};
! 		$tag_data{indicator} = $indicator;
! 		$tag_data{subfield_loop} = \@subfields_data;
! 		push (@loop_data, \%tag_data);
! 	    }
  	}
- 	$template->param($tabloop."XX" =>\@loop_data);
-     }
  }
  
--- 167,236 ----
  	my @loop_data = ();
  	foreach my $tag (sort(keys (%{$tagslib}))) {
! 		my $previous_tag = '';
! 		my @subfields_data;
! 		my $indicator;
! 
! 		# loop through each subfield
! 		foreach my $subfield (sort(keys %{$tagslib->{$tag}})) {
! 			next if subfield_is_koha_internal_p($subfield);
! 			next if ($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
! 			my %subfield_data;
! 			$subfield_data{tag}=$tag;
! 			$subfield_data{subfield}=$subfield;
! 			$subfield_data{marc_lib}="<DIV id=\"error$i\">".$tagslib->{$tag}->{$subfield}->{lib}."</div>";
! 			$subfield_data{tag_mandatory}=$tagslib->{$tag}->{mandatory};
! 			$subfield_data{mandatory}=$tagslib->{$tag}->{$subfield}->{mandatory};
! 			$subfield_data{repeatable}=$tagslib->{$tag}->{$subfield}->{repeatable};
! 			# if breeding is not empty
! 			if ($record ne -1) {
! 				my ($x,$value) = find_value($tag,$subfield,$record);
! 				$value=char_decode($value) unless ($is_a_modif);
! 				$indicator = $x if $x; #XXX
! 				if ($tagslib->{$tag}->{$subfield}->{authorised_value}) {
! 					$subfield_data{marc_value}= build_authorized_values_list($tag, $subfield, $value, $dbh, $authorised_values_sth);
! 				} elsif ($tagslib->{$tag}->{$subfield}->{thesaurus_category}) {
! 					$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\"  size=47 maxlength=255> <a href=\"javascript:Dopop('../thesaurus_popup.pl?category=$tagslib->{$tag}->{$subfield}->{thesaurus_category}&index=$i',$i)\">...</a>"; #"
! 				} elsif ($tagslib->{$tag}->{$subfield}->{'value_builder'}) {
! 					my $plugin="../value_builder/".$tagslib->{$tag}->{$subfield}->{'value_builder'};
! 					require $plugin;
! 					my $extended_param = plugin_parameters($dbh,$record,$tagslib,$i,$tabloop);
! 					my ($function_name,$javascript) = plugin_javascript($dbh,$record,$tagslib,$i,$tabloop);
! 					$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\"  value=\"$value\" size=47 maxlength=255 OnFocus=\"javascript:Focus$function_name($i)\" OnBlur=\"javascript:Blur$function_name($i)\"> <a href=\"javascript:Clic$function_name($i)\">...</a> $javascript";
! 				} else {
! 					$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\" value=\"$value\" size=50 maxlength=255>";
! 				}
  		# if breeding is empty
! 			} else {
! 				my ($x,$value);
! 				($x,$value) = find_value($tag,$subfield,$record) if ($record ne -1);
! 				$value=char_decode($value) unless ($is_a_modif);
! 					if ($tagslib->{$tag}->{$subfield}->{authorised_value}) {
! 						$subfield_data{marc_value}= build_authorized_values_list($tag, $subfield, $value, $dbh, $authorised_values_sth);
! 					} elsif ($tagslib->{$tag}->{$subfield}->{thesaurus_category}) {
! 						$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\"  size=47 maxlength=255 DISABLE READONLY> <a href=\"javascript:Dopop('../thesaurus_popup.pl?category=$tagslib->{$tag}->{$subfield}->{thesaurus_category}&index=$i',$i)\">...</a>";
! 					} elsif ($tagslib->{$tag}->{$subfield}->{'value_builder'}) {
! 						my $plugin="../value_builder/".$tagslib->{$tag}->{$subfield}->{'value_builder'};
! 						require $plugin;
! 						my $extended_param = plugin_parameters($dbh,$record,$tagslib,$i,$tabloop);
! 						my ($function_name,$javascript) = plugin_javascript($dbh,$record,$tagslib,$i,$tabloop);
! 						$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\"  DISABLE READONLY size=47 maxlength=255 OnFocus=\"javascript:Focus$function_name($i)\" OnBlur=\"javascript:Blur$function_name($i)\"> <a href=\"javascript:Clic$function_name($i)\">...</a> $javascript";
! 					} else {
! 						$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\" size=50 maxlength=255>";
! 					}
! 				}
! 				push(@subfields_data, \%subfield_data);
! 				$i++;
! 			}
! 			if ($#subfields_data >= 0) {
! 				my %tag_data;
! 				$tag_data{tag} = $tag;
! 				$tag_data{tag_lib} = $tagslib->{$tag}->{lib};
! 				$tag_data{indicator} = $indicator;
! 				$tag_data{subfield_loop} = \@subfields_data;
! 				push (@loop_data, \%tag_data);
! 			}
  		}
! 		$template->param($tabloop."XX" =>\@loop_data);
  	}
  }
  
***************
*** 285,289 ****
  my $record=-1;
  $record = MARCgetbiblio($dbh,$bibid) if ($bibid);
- #warn "1= ".$record->as_formatted;
  $record = MARCfindbreeding($dbh,$breedingid) if ($breedingid);
  $is_a_modif=0;
--- 287,290 ----





More information about the Koha-cvs mailing list