Lines 915-948
sub BuildSummary {
Link Here
|
915 |
# feature will be enabled only for UNIMARC for backwards |
915 |
# feature will be enabled only for UNIMARC for backwards |
916 |
# compatibility. |
916 |
# compatibility. |
917 |
if ($summary{summary} and C4::Context->preference('marcflavour') eq 'UNIMARC') { |
917 |
if ($summary{summary} and C4::Context->preference('marcflavour') eq 'UNIMARC') { |
918 |
my @fields = $record->fields(); |
918 |
my @matches = ($summary{summary} =~ m/\[(.*?)(\d{3})([\*a-z0-9])(.*?)\]/g); |
919 |
# $reported_tag = '$9'.$result[$counter]; |
919 |
my (@textbefore, @tag, @subtag, @textafter); |
920 |
my @stringssummary; |
920 |
for(my $i = 0; $i < scalar @matches; $i++){ |
921 |
foreach my $field (@fields) { |
921 |
push @textbefore, $matches[$i] if($i%4 == 0); |
922 |
my $tag = $field->tag(); |
922 |
push @tag, $matches[$i] if($i%4 == 1); |
923 |
my $tagvalue = $field->as_string(); |
923 |
push @subtag, $matches[$i] if($i%4 == 2); |
924 |
my $localsummary= $summary{summary}; |
924 |
push @textafter, $matches[$i] if($i%4 == 3); |
925 |
$localsummary =~ s/\[(.?.?.?.?)$tag\*(.*?)\]/$1$tagvalue$2\[$1$tag$2\]/g; |
925 |
} |
926 |
if ($tag<10) { |
926 |
for(my $i = scalar @tag; $i >= 0; $i--){ |
927 |
if ($tag eq '001') { |
927 |
my $textbefore = $textbefore[$i] || ''; |
928 |
$reported_tag.='$3'.$field->data(); |
928 |
my $tag = $tag[$i] || ''; |
929 |
} |
929 |
my $subtag = $subtag[$i] || ''; |
930 |
} else { |
930 |
my $textafter = $textafter[$i] || ''; |
931 |
my @subf = $field->subfields; |
931 |
my $value = ''; |
932 |
for my $i (0..$#subf) { |
932 |
my $field = $record->field($tag); |
933 |
my $subfieldcode = $subf[$i][0]; |
933 |
if ( $field ) { |
934 |
my $subfieldvalue = $subf[$i][1]; |
934 |
if($subtag eq '*') { |
935 |
my $tagsubf = $tag.$subfieldcode; |
935 |
if($tag < 10) { |
936 |
$localsummary =~ s/\[(.?.?.?.?)$tagsubf(.*?)\]/$1$subfieldvalue$2\[$1$tagsubf$2\]/g; |
936 |
$value = $textbefore . $field->data() . $textafter; |
|
|
937 |
} |
938 |
} else { |
939 |
my @subfields = $field->subfield($subtag); |
940 |
if(@subfields > 0) { |
941 |
$value = $textbefore . join (" - ", @subfields) . $textafter; |
942 |
} |
937 |
} |
943 |
} |
938 |
} |
944 |
} |
939 |
push @stringssummary, $localsummary if ($localsummary ne $summary{summary}); |
945 |
$summary{summary} =~ s/\[\Q$textbefore$tag$subtag$textafter\E\]/$value/; |
940 |
} |
946 |
} |
941 |
my $resultstring; |
947 |
$summary{summary} =~ s/\\n/<br \/>/g; |
942 |
$resultstring = join(" -- ",@stringssummary); |
|
|
943 |
$resultstring =~ s/\[(.*?)\]//g; |
944 |
$resultstring =~ s/\n/<br>/g; |
945 |
$summary{summary} = $resultstring; |
946 |
} |
948 |
} |
947 |
my @authorized; |
949 |
my @authorized; |
948 |
my @notes; |
950 |
my @notes; |
949 |
- |
|
|