[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