Bug 11516: make OPAC search term highlighting work in results browser

When OpacHighlightedWords syspref is on, the current search terms are
highlighted in results and detail pages.

This workes in detail page with the URL param 'query_desc'.

This parameter must be managed in results browser (appears when
OpacBrowseResults syspref is on) links.

This patch adds query_desc parameter in results list and changes next
nd previous links to be build into TT instead of perl to manage
query_desc parameter only into TT.

Test plan :
- Edit sysprefs :  OpacHighlightedWords on, OpacBrowseResults on.
- Perform a search with a term existing into title
=> You see the term highlighted in search results
- Go to detail of a result with highlight
=> You see the term highlighted
- Click on "Next"
=> you see query_desc in URL, and if search term is present it is
   highlighted
- Same for "Previous"
- Click on "Browse results"
- Click on a result
=> you see query_desc in URL, and if search term is present it is
   highlighted

Signed-off-by: Aurélie <aurelie.fichot@gmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This commit is contained in:
Fridolin Somers 2014-01-10 11:42:06 +01:00 committed by Galen Charlton
parent 5c4ae8768d
commit 9d9a002432
3 changed files with 39 additions and 14 deletions

View file

@ -1024,14 +1024,16 @@
</div>
<ul class="pg_menu clearfix">
<li class="left_results">
[% IF ( previous ) %]<a href="[% previous |url %]" title="See: [% IF ( previousTitle ) %][% previousTitle |html %][% ELSE %]previous biblio[% END %]">&laquo; Previous</a>
[% IF ( previousBiblionumber ) %]
<a href="opac-detail.pl?biblionumber=[% previousBiblionumber %][% IF ( query_desc && OpacHighlightedWords ) %]&query_desc=[% query_desc |uri %][% END %]" title="See: [% IF ( previousTitle ) %][% previousTitle |html %][% ELSE %]previous biblio[% END %]">&laquo; Previous</a>
[% ELSE %]
<span>Previous</span>
[% END %]
</li>
<li class="back_results"><a href="opac-search.pl?[% busc |url %]" title="Back to the results search list">Back to results</a></li>
<li class="right_results">
[% IF ( next ) %]<a href="[% next %]" title="See: [% IF ( nextTitle ) %][% nextTitle |html %][% ELSE %]next biblio[% END %]">Next &raquo;</a>
[% IF ( nextBiblionumber ) %]
<a href="opac-detail.pl?biblionumber=[% nextBiblionumber %][% IF ( query_desc && OpacHighlightedWords ) %]&query_desc=[% query_desc |uri %][% END %]" title="See: [% IF ( nextTitle ) %][% nextTitle |html %][% ELSE %]next biblio[% END %]">Next &raquo;</a>
[% ELSE %]
<span>Next</span>
[% END %]
@ -1255,7 +1257,12 @@
var pag_index_ini = [% indexPag %];
[% IF ( listResults ) %]
[% FOREACH listResult IN listResults %]
arrPagination[[% listResult.index %]] = {url:"[% listResult.url %]", title:"[% listResult.title|remove('\n')|html %]", author:"[% listResult.author|html %]", biblionumber:[% listResult.biblionumber %]};
arrPagination[[% listResult.index %]] = {
url:"[% listResult.url %][% IF ( listResult.url && query_desc && OpacHighlightedWords ) %]&query_desc=[% query_desc |uri %][% END %]",
title:"[% listResult.title|remove('\n')|html %]",
author:"[% listResult.author|html %]",
biblionumber:[% listResult.biblionumber %]
};
[% END %]
[% END %]
[% END %]

View file

@ -43,7 +43,12 @@
var pag_index_ini = [% indexPag %];
[% IF ( listResults ) %]
[% FOREACH listResult IN listResults %]
arrPagination[[% listResult.index %]] = {url:"[% listResult.url %]", title:"[% listResult.title|remove('\n')|html %]", author:"[% listResult.author|html %]", biblionumber:[% listResult.biblionumber %]};
arrPagination[[% listResult.index %]] = {
url:"[% listResult.url %][% IF ( listResult.url && query_desc && OpacHighlightedWords ) %]&query_desc=[% query_desc |uri %][% END %]",
title:"[% listResult.title|remove('\n')|html %]",
author:"[% listResult.author|html %]",
biblionumber:[% listResult.biblionumber %]
};
[% END %]
[% END %]
[% END %]
@ -1417,9 +1422,21 @@ YAHOO.util.Event.onContentReady("furtherm", function () {
<div class="nav_results">
<div class="l_Results">[% IF ( listResults ) %]<a href="#" id="a_listResults" title="Show pagination list ([% indexPag %]-[% indexPagEnd %] / [% totalPag %])">Browse results</a>[% ELSE %]<span>Browse results</span>[% END %]</div>
<ul class="pg_menu clearfix">
<li class="left_results">[% IF ( previous ) %]<a href="[% previous %]" title="See: [% IF ( previousTitle ) %][% previousTitle |html %][% ELSE %]previous biblio[% END %]">&laquo; Previous</a>[% ELSE %]<span>Previous</span>[% END %]</li>
<li class="left_results">
[% IF ( previousBiblionumber ) %]
<a href="opac-detail.pl?biblionumber=[% previousBiblionumber %][% IF ( query_desc && OpacHighlightedWords ) %]&query_desc=[% query_desc |uri %][% END %]" title="See: [% IF ( previousTitle ) %][% previousTitle |html %][% ELSE %]previous biblio[% END %]">&laquo; Previous</a>
[% ELSE %]
<span>Previous</span>
[% END %]
</li>
<li class="back_results"><a href="opac-search.pl?[% busc %]" title="Back to the results search list">Back to results</a></li>
<li class="right_results">[% IF ( next ) %]<a href="[% next %]" title="See: [% IF ( nextTitle ) %][% nextTitle |html %][% ELSE %]next biblio[% END %]">Next &raquo;</a>[% ELSE %]<span>Next</span>[% END %]</li>
<li class="right_results">
[% IF ( nextBiblionumber ) %]
<a href="opac-detail.pl?biblionumber=[% nextBiblionumber %][% IF ( query_desc && OpacHighlightedWords ) %]&query_desc=[% query_desc |uri %][% END %]" title="See: [% IF ( nextTitle ) %][% nextTitle |html %][% ELSE %]next biblio[% END %]">Next &raquo;</a>
[% ELSE %]
<span>Next</span>
[% END %]
</li>
</ul>
[% IF ( listResults ) %]
<div class="pagination">

View file

@ -374,20 +374,21 @@ if ($session->param('busc')) {
my $newbusc = rebuildBuscParam(\%arrParamsBusc);
$session->param("busc" => $newbusc);
}
my ($previous, $next, $dataBiblioPaging);
my ($numberBiblioPaging, $dataBiblioPaging);
# Previous biblio
if ($paging{'previous'}->{biblionumber}) {
$previous = 'opac-detail.pl?biblionumber=' . $paging{'previous'}->{biblionumber} . '&query_desc=' . $query->param('query_desc');
$dataBiblioPaging = GetBiblioData($paging{'previous'}->{biblionumber});
$numberBiblioPaging = $paging{'previous'}->{biblionumber};
if ($numberBiblioPaging) {
$template->param( 'previousBiblionumber' => $numberBiblioPaging );
$dataBiblioPaging = GetBiblioData($numberBiblioPaging);
$template->param('previousTitle' => $dataBiblioPaging->{'title'}) if ($dataBiblioPaging);
}
# Next biblio
if ($paging{'next'}->{biblionumber}) {
$next = 'opac-detail.pl?biblionumber=' . $paging{'next'}->{biblionumber} . '&query_desc=' . $query->param('query_desc');
$dataBiblioPaging = GetBiblioData($paging{'next'}->{biblionumber});
$numberBiblioPaging = $paging{'next'}->{biblionumber};
if ($numberBiblioPaging) {
$template->param( 'nextBiblionumber' => $numberBiblioPaging );
$dataBiblioPaging = GetBiblioData($numberBiblioPaging);
$template->param('nextTitle' => $dataBiblioPaging->{'title'}) if ($dataBiblioPaging);
}
$template->param('previous' => $previous, 'next' => $next);
# Partial list of biblio results
my @listResults;
for (my $j = 0; $j < @arrBiblios; $j++) {