Bug 8870 UNIMARC authorities search doesn't display information properly
- Note field (3xx) are not displayed on search result page. We get 'HASH()' text. - Parallel/Other forms (7xx) are not displayed, with language name in front of heading, both on result and detail page. - Note are not displayed. - On result page, seealso form are displayed, but end with a superfluous '--' - Style the result page, with condensed block, and space between them. - Done both on OPAC/staff To be applied on 3.8.x after bug 8523. Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
This commit is contained in:
parent
d50edb9a8f
commit
492dd7dc7f
8 changed files with 135 additions and 61 deletions
|
@ -959,6 +959,11 @@ sub BuildSummary {
|
|||
'i' => 'subfi',
|
||||
't' => 'parent'
|
||||
);
|
||||
my %unimarc_relation_from_code = (
|
||||
g => 'broader',
|
||||
h => 'narrower',
|
||||
a => 'seealso',
|
||||
);
|
||||
my %thesaurus;
|
||||
$thesaurus{'1'}="Peuples";
|
||||
$thesaurus{'2'}="Anthroponymes";
|
||||
|
@ -1023,39 +1028,28 @@ sub BuildSummary {
|
|||
my $thesaurus = $field->subfield('2') ? "thes. : ".$thesaurus{"$field->subfield('2')"}." : " : '';
|
||||
push @seefrom, { heading => $thesaurus . $field->as_string('abcdefghijlmnopqrstuvwxyz'), type => 'seefrom', field => $field->tag() };
|
||||
}
|
||||
# see :
|
||||
foreach my $field ($record->field('5..')) {
|
||||
if (($field->subfield('5')) && ($field->subfield('a')) && ($field->subfield('5') eq 'g')) {
|
||||
push @seealso, {
|
||||
heading => $field->as_string('abcdefgjxyz'),
|
||||
type => 'broader',
|
||||
field => $field->tag(),
|
||||
search => $field->as_string('abcdefgjxyz'),
|
||||
authid => $field->subfield('9')
|
||||
};
|
||||
} elsif (($field->subfield('5')) && ($field->as_string) && ($field->subfield('5') eq 'h')){
|
||||
push @seealso, {
|
||||
heading => $field->as_string('abcdefgjxyz'),
|
||||
type => 'narrower',
|
||||
field => $field->tag(),
|
||||
search => $field->as_string('abcdefgjxyz'),
|
||||
authid => $field->subfield('9')
|
||||
};
|
||||
} elsif ($field->subfield('a')) {
|
||||
push @seealso, {
|
||||
heading => $field->as_string('abcdefgxyz'),
|
||||
type => 'seealso',
|
||||
field => $field->tag(),
|
||||
search => $field->as_string('abcdefgjxyz'),
|
||||
authid => $field->subfield('9')
|
||||
};
|
||||
|
||||
# see :
|
||||
@seealso = map {
|
||||
my $type = $unimarc_relation_from_code{$_->subfield('5') || 'a'};
|
||||
my $heading = $_->as_string('abcdefgjxyz');
|
||||
{
|
||||
field => $_->tag,
|
||||
type => $type,
|
||||
heading => $heading,
|
||||
search => $heading,
|
||||
authid => $_->subfield('9'),
|
||||
}
|
||||
}
|
||||
# // form
|
||||
foreach my $field ($record->field('7..')) {
|
||||
my $lang = substr($field->subfield('8'),3,3);
|
||||
push @otherscript, { lang => $lang, term => $field->subfield('a'), direction => 'ltr', field => $field->tag() };
|
||||
}
|
||||
} $record->field('5..');
|
||||
|
||||
# Other forms
|
||||
@otherscript = map { {
|
||||
lang => $_->subfield('8') || '',
|
||||
term => $_->subfield('a'),
|
||||
direction => 'ltr',
|
||||
field => $_->tag,
|
||||
} } $record->field('7..');
|
||||
|
||||
} else {
|
||||
# construct MARC21 summary
|
||||
# FIXME - looping over 1XX is questionable
|
||||
|
|
|
@ -2380,6 +2380,16 @@ ul.ui-tabs-nav li {
|
|||
#authfinderops {
|
||||
float: right;
|
||||
}
|
||||
div.authorizedheading {
|
||||
font-weight: bold;
|
||||
}
|
||||
.authres_notes, .authres_seealso, .authres_otherscript {
|
||||
padding-top: 3px;
|
||||
}
|
||||
.authres_notes {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
|
||||
.contents {
|
||||
width: 75%;
|
||||
|
|
|
@ -2,15 +2,13 @@
|
|||
[% IF marcflavour == 'UNIMARC' %]
|
||||
[% SWITCH type %]
|
||||
[% CASE 'broader' %]
|
||||
<span class="BT">[% heading | html %]</span> --
|
||||
<span class="BT">BT: [% heading | html %]</span>
|
||||
[% CASE 'narrower' %]
|
||||
<span class="NT">[% heading | html %]</span> --
|
||||
[% CASE 'narrower' %]
|
||||
<span class="NT">[% heading | html %]</span> --
|
||||
<span class="NT">NT: [% heading | html %]</span>
|
||||
[% CASE 'seefrom' %]
|
||||
<span class="UF">[% heading | html %]</span> --
|
||||
<span class="UF">UF: [% heading | html %]</span>
|
||||
[% CASE 'seealso' %]
|
||||
<span class="RT">[% heading | html %]</span> --
|
||||
<span class="RT">RT: [% heading | html %]</span>
|
||||
[% END %]
|
||||
[% ELSE %]
|
||||
[% IF ( label ) %]<span class="label">[% label | html %]</span>[% END %]
|
||||
|
@ -33,16 +31,37 @@
|
|||
[% BLOCK authresult %]
|
||||
[% IF ( summary.summary ) %][% summary.summary | html %]:[% END %]
|
||||
[% UNLESS ( summary.summaryonly ) %]
|
||||
<div class="authorizedheading">
|
||||
[% FOREACH authorize IN summary.authorized %]
|
||||
<span class="authorizedheading">[% authorize.heading | html %]</span>
|
||||
<span class="authorizedheading">[% authorize.heading | html %]</span>
|
||||
[% END %]
|
||||
</div>
|
||||
[% IF ( marcflavour == 'UNIMARC' ) %]
|
||||
[% FOREACH note IN summary.notes %]
|
||||
<span class="note">[% note | html %]</span>
|
||||
[% IF summary.notes %]
|
||||
<div class="authres_notes">
|
||||
[% FOREACH note IN summary.notes %]
|
||||
[% note.note | html %]</span>
|
||||
[% END %]
|
||||
</div>
|
||||
[% END %]
|
||||
[% IF summary.seealso %]
|
||||
<div class="authres_seealso">
|
||||
[% FOREACH see IN summary.seealso %]
|
||||
[% PROCESS showreference heading=see.heading label="" type=see.type search='' %]
|
||||
[% IF ! loop.last %] ; [% END %]
|
||||
[% END %]
|
||||
[% FOREACH seefro IN summary.seefrom %]
|
||||
[% PROCESS showreference heading=seefro.heading label="" type=seefro.type search='' %]
|
||||
</div>
|
||||
[% END %]
|
||||
[% IF summary.otherscript %]
|
||||
<div class="authres_otherscript">
|
||||
[% FOREACH other IN summary.otherscript %]
|
||||
[% PROCESS language lang=other.lang | trim %]:
|
||||
[% other.term %]
|
||||
[% IF ! loop.last %] ; [% END %]
|
||||
[% END %]
|
||||
</div>
|
||||
[% END %]
|
||||
|
||||
[% ELSE %]
|
||||
[% IF ( summary.seefrom ) %]
|
||||
[% FOREACH seefro IN summary.seefrom %]
|
||||
|
@ -61,3 +80,13 @@
|
|||
[% END %]
|
||||
[% END %]
|
||||
[% END %]
|
||||
[% BLOCK language %]
|
||||
[% SWITCH lang %]
|
||||
[% CASE ['en', 'eng'] %]English
|
||||
[% CASE ['fr', 'fre'] %]French
|
||||
[% CASE ['it', 'ita'] %]Italian
|
||||
[% CASE ['de', 'ger', 'deu'] %]German
|
||||
[% CASE ['es', 'spa'] %]Spanish
|
||||
[% CASE %][% lang %]
|
||||
[% END %]
|
||||
[% END %]
|
||||
|
|
|
@ -2682,10 +2682,18 @@ ul.ui-tabs-nav li {
|
|||
.authstanzaheading {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.authorizedheading {
|
||||
font-weight: bold;
|
||||
}
|
||||
.authstanza li {
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
.authres_notes, .authres_seealso, .authres_otherscript {
|
||||
padding-top: 5px;
|
||||
}
|
||||
.authres_notes {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#didyoumean {
|
||||
background-color: #EEE;
|
||||
|
|
|
@ -2,15 +2,13 @@
|
|||
[% IF marcflavour == 'UNIMARC' %]
|
||||
[% SWITCH type %]
|
||||
[% CASE 'broader' %]
|
||||
<span class="BT">[% heading | html %]</span> --
|
||||
<span class="BT">BT: [% heading | html %]</span>
|
||||
[% CASE 'narrower' %]
|
||||
<span class="NT">[% heading | html %]</span> --
|
||||
[% CASE 'narrower' %]
|
||||
<span class="NT">[% heading | html %]</span> --
|
||||
<span class="NT">NT: [% heading | html %]</span>
|
||||
[% CASE 'seefrom' %]
|
||||
<span class="UF">[% heading | html %]</span> --
|
||||
<span class="UF">UF: [% heading | html %]</span>
|
||||
[% CASE 'seealso' %]
|
||||
<span class="RT">[% heading | html %]</span> --
|
||||
<span class="RT">RT: [% heading | html %]</span>
|
||||
[% END %]
|
||||
[% ELSE %]
|
||||
[% IF ( label ) %]<span class="label">[% label | html %]</span>[% END %]
|
||||
|
@ -33,15 +31,35 @@
|
|||
[% BLOCK authresult %]
|
||||
[% IF ( summary.summary ) %][% summary.summary | html %]:[% END %]
|
||||
[% UNLESS ( summary.summaryonly ) %]
|
||||
[% FOREACH authorize IN summary.authorized %]
|
||||
<div class="authorizedheading">
|
||||
[% FOREACH authorize IN summary.authorized %]
|
||||
<span class="authorizedheading">[% authorize.heading | html %]</span>
|
||||
[% END %]
|
||||
[% END %]
|
||||
</div>
|
||||
[% IF ( marcflavour == 'UNIMARC' ) %]
|
||||
[% FOREACH note IN summary.notes %]
|
||||
<span class="note">[% note | html %]</span>
|
||||
[% IF summary.notes %]
|
||||
<div class="authres_notes">
|
||||
[% FOREACH note IN summary.notes %]
|
||||
[% note.note | html %]</span>
|
||||
[% END %]
|
||||
</div>
|
||||
[% END %]
|
||||
[% FOREACH seefro IN summary.seefrom %]
|
||||
[% PROCESS showreference heading=seefro.heading label="" type=seefro.type search='' %]
|
||||
[% IF summary.seealso %]
|
||||
<div class="authres_seealso">
|
||||
[% FOREACH see IN summary.seealso %]
|
||||
[% PROCESS showreference heading=see.heading label="" type=see.type search='' %]
|
||||
[% IF ! loop.last %] ; [% END %]
|
||||
[% END %]
|
||||
</div>
|
||||
[% END %]
|
||||
[% IF summary.otherscript %]
|
||||
<div class="authres_otherscript">
|
||||
[% FOREACH other IN summary.otherscript %]
|
||||
[% PROCESS language lang=other.lang | trim %]:
|
||||
[% other.term %]
|
||||
[% IF ! loop.last %] ; [% END %]
|
||||
[% END %]
|
||||
</div>
|
||||
[% END %]
|
||||
[% ELSE %]
|
||||
[% IF ( summary.seefrom ) %]
|
||||
|
|
|
@ -54,3 +54,13 @@
|
|||
[% ELSE %][% heading %]
|
||||
[% END %]
|
||||
[% END %]
|
||||
[% BLOCK language %]
|
||||
[% SWITCH lang %]
|
||||
[% CASE ['en', 'eng'] %]English
|
||||
[% CASE ['fr', 'fre'] %]French
|
||||
[% CASE ['it', 'ita'] %]Italian
|
||||
[% CASE ['de', 'ger', 'deu'] %]German
|
||||
[% CASE ['es', 'spa'] %]Spanish
|
||||
[% CASE %][% lang %]
|
||||
[% END %]
|
||||
[% END %]
|
||||
|
|
|
@ -42,7 +42,7 @@ $(document).ready(function() {
|
|||
</div>
|
||||
[% END %]
|
||||
|
||||
<h1>[% summary.mainentry %][% IF authtypetext %]([% authtypetext %])[% END %]</h1>
|
||||
<h1>[% summary.mainentry %][% IF authtypetext %] ([% authtypetext %])[% END %]</h1>
|
||||
<div class="usedin">Used in <a href="opac-search.pl?type=opac&q=[% authid %]&idx=an,phr">[% count %] records</a></div>
|
||||
<div class="authstanza">
|
||||
[% FOREACH authorize IN summary.authorized %]
|
||||
|
@ -76,13 +76,17 @@ $(document).ready(function() {
|
|||
</div>
|
||||
[% END %]
|
||||
[% IF marcflavour == 'UNIMARC' && summary.otherscript %]
|
||||
<div class="authstanza">
|
||||
<div class="authstanza">
|
||||
<div class="authstanzaheading">Other forms:</div>
|
||||
<ul>
|
||||
[% FOREACH otherscrip IN summary.otherscript %]
|
||||
<div class="heading otherscript auth[% otherscrip.field %]"><span class="label">See also[% PROCESS language lang=otherscript.lang | trim %] term:</span>
|
||||
<li>
|
||||
[% PROCESS language lang=otherscrip.lang | trim %]:
|
||||
<span class="otherscript">[% otherscrip.term %]</span>
|
||||
</div>
|
||||
</li>
|
||||
[% END %]
|
||||
</div>
|
||||
</ul>
|
||||
</div>
|
||||
[% END %]
|
||||
<div id="authdescriptions" class="toptabs">
|
||||
<ul>
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
[% PROCESS 'opac-authorities.inc' %]
|
||||
[% PROCESS 'authorities-search-results.inc' %]
|
||||
[% INCLUDE 'doc-head-open.inc' %][% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog › [% IF ( total ) %]Authority search result[% ELSE %]No results found[% END %]
|
||||
[% INCLUDE 'doc-head-close.inc' %]
|
||||
|
|
Loading…
Reference in a new issue