[Koha-patches] [PATCH] Bug 5262 - authority plugin doesn't copy indicators -- corrected version
Janusz Kaczmarek
januszop at gmail.com
Tue Apr 30 23:42:53 CEST 2013
With this patch Koha should Koha should correctly copy indicators (and
create $2 subfield in MARC-21 if need) from the chosen authority record
to the edited bibliographic record (according to discussion in
bugzilla). UNIMARC and MARC-21 flavors are covered.
---
authorities/blinddetail-biblio-search.pl | 43 ++++++++++++++++++++
.../authorities/blinddetail-biblio-search.tt | 3 +
2 files changed, 46 insertions(+), 0 deletions(-)
diff --git a/authorities/blinddetail-biblio-search.pl b/authorities/blinddetail-biblio-search.pl
index 5879a37..3d756a0 100755
--- a/authorities/blinddetail-biblio-search.pl
+++ b/authorities/blinddetail-biblio-search.pl
@@ -77,6 +77,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
# fill arrays
my @subfield_loop;
+my ($indicator1, $indicator2);
if ($authid) {
my @fields = $record->field( $auth_type->{auth_tag_to_report} );
my $repet = ($query->param('repet') || 1) - 1;
@@ -101,6 +102,46 @@ if ($authid) {
}
push( @subfield_loop, { marc_subfield => 'w', marc_values => $relationship } ) if ( $relationship );
+ if (C4::Context->preference('marcflavour') eq 'UNIMARC') {
+ $indicator1 = $field->indicator('1');
+ $indicator2 = $field->indicator('2');
+ } elsif (C4::Context->preference('marcflavour') eq 'MARC21') {
+ my $tag_from = $auth_type->{auth_tag_to_report};
+ my $tag_to = $index;
+ $tag_to =~ s/^tag_(\d*)_.*$/$1/;
+ if ($tag_to =~ /^6/) { # subject heading
+ my %thes_mapping = qw / a 0
+ b 1
+ c 2
+ d 3
+ k 5
+ n 4
+ r 7
+ s 7
+ v 6
+ z 7
+ | 4 /;
+ my $thes_008_11 = '';
+ $thes_008_11 = substr($record->field('008')->data(), 11, 1) if $record->field('008')->data();
+ $indicator2 = defined $thes_mapping{$thes_008_11} ? $thes_mapping{$thes_008_11} : $thes_008_11;
+ if ($indicator2 eq '7') {
+ if ($thes_008_11 eq 'r') {
+ $subfields{'2'} = ['aat'];
+ } elsif ($thes_008_11 eq 's') {
+ $subfields{'2'} = ['sears'];
+ }
+ }
+ }
+ if ($tag_from eq '130') { # unified title -- the special case
+ if ($tag_to eq '830') {
+ $indicator2 = $field->indicator('2');
+ } else {
+ $indicator1 = $field->indicator('2');
+ }
+ } else {
+ $indicator1 = $field->indicator('1');
+ }
+ }
}
else {
# authid is empty => the user want to empty the entry.
@@ -115,6 +156,8 @@ $template->param(
authid => $authid ? $authid : "",
index => $index,
tagid => $tagid,
+ indicator1 => $indicator1,
+ indicator2 => $indicator2,
SUBFIELD_LOOP => \@subfield_loop,
tag_number => $tag_number,
);
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt
index 4a3cb86..c95a29b 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt
@@ -81,6 +81,9 @@
[% END %]
);
[% END %]
+ var indicators = field_start.getElementsByClassName('indicator flat');
+ indicators[0].value="[% indicator1 %]";
+ indicators[1].value="[% indicator2 %]";
[% END %]
// browse all its subfields (clear and $9)
--
1.7.2.5
More information about the Koha-patches
mailing list