@@ -, +, @@
"choose" is displayed, working correctly.
and so on) are displayed, one for each occurence. In the example of my
screenshot, the line with a "Paul, Korky -- Pauline, Korkette" summary
possesses two links : "1" will add "Paul, Korky" whereas "2" will add
"Pauline, Korkette" (couldn't come up with a better name ;)).
also created, when it should not be the case. In our example, "Niclausse,
Paul -- Expositions" will create a link "1" for "Niclausse, Paul" and a link
"2" for "Expositions". Clicking on the 2nd link leads to the following
error: Software error: Can't call method "subfields" on an undefined value
at
/home/asaurat/workspace/versions/community/authorities/blinddetail-biblio-search.pl
line 86. Only the cases 1 and 2 should be handled. The creation of links
for subfields like 200$x or 200$y should be removed.
- Edit an authority type summary : for example subject (heading on 250) :
summary "[250a][ -- 250x]"
- Create an authority A1 with one heading and a subdivision : for example a
subject : 250$a "History" 250$x "20th century"
- Create an authority A2 with several headings. for example a subject : 250$a
"History" 250$a "Legends"
- Rebuild Zebra queue
- Go to OPAC and click on "Authority search" and search on "History"
=> You will find A1 and A2 :
History -- 20th century
History | Legends
- Go to intranet autorities search and search on "History"
=> You will find A1 and A2 :
History -- 20th century
History | Legends
- Edit a record using this autorities type as thesaurus : for example on 606$a
- Click on thesaurus link and search on "History"
=> You will find A1 and A2 :
History -- 20th century ; 0 times ; choose ; Edit authority
History | Legends ; 0 times ; 1 2 ; Edit authority
- Click on link "2" to chosse "Legends"
=> You get "Legends" in heading field : for example 606$a
---
C4/AuthoritiesMarc.pm | 21 ++++++++++---------
authorities/auth_finder.pl | 13 ------------
.../en/includes/authorities-search-results.inc | 10 +++++++-
.../modules/authorities/searchresultlist-auth.tt | 6 ++--
.../en/includes/authorities-search-results.inc | 10 +++++++-
5 files changed, 30 insertions(+), 30 deletions(-)
--- a/C4/AuthoritiesMarc.pm
+++ a/C4/AuthoritiesMarc.pm
@@ -876,12 +876,13 @@ sub BuildSummary {
my ($record,$authid,$authtypecode)=@_;
my $dbh=C4::Context->dbh;
my %summary;
+ my $summary_template;
# handle $authtypecode is NULL or eq ""
if ($authtypecode) {
my $authref = GetAuthType($authtypecode);
$summary{authtypecode} = $authref->{authtypecode};
$summary{type} = $authref->{authtypetext};
- $summary{summary} = $authref->{summary};
+ $summary_template = $authref->{summary};
}
my $marc21subfields = 'abcdfghjklmnopqrstuvxyz68';
my %marc21controlrefs = ( 'a' => 'earlier',
@@ -914,14 +915,14 @@ sub BuildSummary {
# suit the MARC21 version, so for now the "templating"
# feature will be enabled only for UNIMARC for backwards
# compatibility.
- if ($summary{summary} and C4::Context->preference('marcflavour') eq 'UNIMARC') {
+ if ($summary_template and C4::Context->preference('marcflavour') eq 'UNIMARC') {
my @fields = $record->fields();
# $reported_tag = '$9'.$result[$counter];
- my @stringssummary;
+ my @repets;
foreach my $field (@fields) {
my $tag = $field->tag();
my $tagvalue = $field->as_string();
- my $localsummary= $summary{summary};
+ my $localsummary= $summary_template;
$localsummary =~ s/\[(.?.?.?.?)$tag\*(.*?)\]/$1$tagvalue$2\[$1$tag$2\]/g;
if ($tag<10) {
if ($tag eq '001') {
@@ -936,13 +937,13 @@ sub BuildSummary {
$localsummary =~ s/\[(.?.?.?.?)$tagsubf(.*?)\]/$1$subfieldvalue$2\[$1$tagsubf$2\]/g;
}
}
- push @stringssummary, $localsummary if ($localsummary ne $summary{summary});
+ if ($localsummary ne $summary_template) {
+ $localsummary =~ s/\[(.*?)\]//g;
+ $localsummary =~ s/\n/
/g;
+ push @repets, $localsummary;
+ }
}
- my $resultstring;
- $resultstring = join(" -- ",@stringssummary);
- $resultstring =~ s/\[(.*?)\]//g;
- $resultstring =~ s/\n/
/g;
- $summary{summary} = $resultstring;
+ $summary{repets} = \@repets;
}
my @authorized;
my @notes;
--- a/authorities/auth_finder.pl
+++ a/authorities/auth_finder.pl
@@ -72,19 +72,6 @@ if ( $op eq "do_search" ) {
$startfrom * $resultsperpage,
$resultsperpage, $authtypecode, $orderby);
- # If an authority heading is repeated, add an arrayref to those repetions
- # First heading -- Second heading
- for my $heading ( @$results ) {
- my @repets = split / -- /, $heading->{summary};
- if ( @repets > 1 ) {
- my @repets_loop;
- for (my $i = 0; $i < @repets; $i++) {
- push @repets_loop,
- { index => $index, repet => $i+1, value => $repets[$i] };
- }
- $heading->{repets} = \@repets_loop;
- }
- }
# multi page display gestion
my $displaynext = 0;
my $displayprev = $startfrom;
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/authorities-search-results.inc
+++ a/koha-tmpl/intranet-tmpl/prog/en/includes/authorities-search-results.inc
@@ -29,18 +29,24 @@
[% END %]
[% END %]
[% BLOCK authresult %]
- [% IF ( summary.summary ) %][% summary.summary | html %]:[% END %]
+