@@ -, +, @@ --- C4/Biblio.pm | 12 +- koha-tmpl/opac-tmpl/prog/en/css/opac.css | 30 +++ koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt | 200 +++++++++++++++++++- 3 files changed, 230 insertions(+), 12 deletions(-) --- a/C4/Biblio.pm +++ a/C4/Biblio.pm @@ -1705,6 +1705,7 @@ sub GetMarcSubjects { # if there is an authority link, build the link with an= subfield9 my $found9 = 0; + my $authoritylink; for my $subject_subfield (@subfields) { # don't load unimarc subfields 3,4,5 @@ -1722,6 +1723,7 @@ sub GetMarcSubjects { } if ( $code eq 9 ) { $found9 = 1; + $authoritylink = $linkvalue; @link_loop = ( { 'limit' => 'an', link => "$linkvalue" } ); } if ( not $found9 ) { @@ -1738,7 +1740,10 @@ sub GetMarcSubjects { $counter++; } - push @marcsubjects, { MARCSUBJECT_SUBFIELDS_LOOP => \@subfields_loop }; + push @marcsubjects, { + MARCSUBJECT_SUBFIELDS_LOOP => \@subfields_loop, + authoritylink => $authoritylink, + }; } return \@marcsubjects; @@ -1821,7 +1826,10 @@ sub GetMarcAuthors { unless ( $authors_subfield->[0] eq '9' || $authors_subfield->[0] eq '0'); $count_auth++; } - push @marcauthors, { MARCAUTHOR_SUBFIELDS_LOOP => \@subfields_loop }; + push @marcauthors, { + MARCAUTHOR_SUBFIELDS_LOOP => \@subfields_loop, + authoritylink => $subfield9, + }; } return \@marcauthors; } --- a/koha-tmpl/opac-tmpl/prog/en/css/opac.css +++ a/koha-tmpl/opac-tmpl/prog/en/css/opac.css @@ -2159,6 +2159,36 @@ a.p1:active { div.ft { clear : both; } + +.authorSearch { + position: absolute; + display: none; + z-index: 2; + background-color: white; + border: 1px solid black; + padding: 4px; +} +.authorSearch li { + list-style-type: none; +} +.authorSearch ul { + padding-left: 0px; +} +.subjectSearch { + position: absolute; + display: none; + z-index: 2; + background-color: white; + border: 1px solid black; + padding: 4px; +} +.subjectSearch li { + list-style-type: none; +} +.subjectSearch ul { + padding-left: 0px; +} + #basket td ul li { font-size:90%; list-style:disc outside url("../../images/item-bullet.gif"); --- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt +++ a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt @@ -269,6 +269,102 @@ YAHOO.util.Event.onContentReady("furtherm", function () { }); //]]> + + + [% IF ( opacuserlogin ) %][% IF ( loggedinusername ) %][% IF ( TagsEnabled ) %][% END %][% END %][% END %] @@ -336,12 +432,51 @@ YAHOO.util.Event.onContentReady("furtherm", function () { [% IF ( MARCAUTHORS ) %] - Authors: + + Authors: +
+ Select the item(s) to search : +
    +
  • all
  • +

  • [% FOREACH MARCAUTHOR IN MARCAUTHORS %] - [% FOREACH MARCAUTHOR_SUBFIELDS_LOO IN MARCAUTHOR.MARCAUTHOR_SUBFIELDS_LOOP %][% MARCAUTHOR_SUBFIELDS_LOO.separator %][% MARCAUTHOR_SUBFIELDS_LOO.value %][% END %] - [% UNLESS ( loop.last ) %]| -[% END %] +
  • + [% IF (MARCAUTHOR.authoritylink) %] + + [% ELSE %] + + [% END %] + + [% FOREACH SUBFIELD IN MARCAUTHOR.MARCAUTHOR_SUBFIELDS_LOOP %] + [% SUBFIELD.value %] + [% END %] +
  • [% END %] +
+
+ Cancel +  |  + Search +
+ [% FOREACH MARCAUTHOR IN MARCAUTHORS %] + [% authorsloop = loop %] + [% FOREACH SUBFIELD IN MARCAUTHOR.MARCAUTHOR_SUBFIELDS_LOOP %] + [% SUBFIELD.value %] + [% UNLESS (loop.last) %][% SUBFIELD.separator %][% END %] + [% END %] + [% IF (MARCAUTHOR.authoritylink) %] + + [% END %] + [% UNLESS ( loop.last ) %]|[% END %] + [% END %]
[% END %] @@ -395,12 +530,57 @@ YAHOO.util.Event.onContentReady("furtherm", function () { [% END %] [% IF ( MARCSUBJCTS ) %] - Subject(s): - [% FOREACH MARCSUBJCT IN MARCSUBJCTS %] - [% FOREACH MARCSUBJECT_SUBFIELDS_LOO IN MARCSUBJCT.MARCSUBJECT_SUBFIELDS_LOOP %] - [% MARCSUBJECT_SUBFIELDS_LOO.separator %][% MARCSUBJECT_SUBFIELDS_LOO.value %][% END %] - [% IF ( loop.last ) %][% ELSE %]|[% END %] - [% END %] + + Subject(s): +
+ Select the item(s) to search : +
+ + +
+ [% FOREACH MARCSUBJCT IN MARCSUBJCTS %] + [% subjectsloop = loop %] + [% IF MARCSUBJCT.authoritylink %] +
    + [% ELSE %] +
      + [% END %] + [% FOREACH SUBFIELD IN MARCSUBJCT.MARCSUBJECT_SUBFIELDS_LOOP %] +
    • + + +
    • + [% END %] +
    +
    + [% END %] +
+ Cancel +  |  + Search +
+ [% FOREACH MARCSUBJCT IN MARCSUBJCTS %] + [% subjectsloop = loop %] + [% FOREACH SUBFIELD IN MARCSUBJCT.MARCSUBJECT_SUBFIELDS_LOOP %] + [% SUBFIELD.separator %] + [% SUBFIELD.value %] + [% END %] + [% IF (MARCSUBJCT.authoritylink) %] + + [% END %] + [% UNLESS ( loop.last ) %] | [% END %] + [% END %] +
[% ELSE %] [% IF ( subjects ) %]Subject(s): [% FOREACH subject IN subjects %][% subject.subject %] | [% END %][% END %] [% END %] --