From 6e405f9537a3b3f704b67532cdf85f60e985c8b4 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Fri, 9 Aug 2013 14:42:00 +0100 Subject: [PATCH] Bug 6149 - Stopwords for Result Highlighting This patch adds a system preference to control stopwords used to prevent operators and other 'minor' words from being highlighted in search results when the OpacHighlightWords syspref is enabled --- .../prog/en/modules/admin/preferences/opac.pref | 5 ++++- koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt | 11 +++++++---- koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tt | 13 ++++++++----- opac/opac-detail.pl | 1 + opac/opac-search.pl | 5 +++++ 5 files changed, 25 insertions(+), 10 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref index 90295ef..cb70b2c 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref @@ -135,7 +135,10 @@ OPAC: choices: yes: Highlight no: "Don't highlight" - - words the patron searched for in their search results and detail pages. + - words the patron searched for in their search results and detail pages; To prevent certain words from ever being highlighted, enter a list of stopwords here + - pref: OpacHighlightedStopWords + class: multi + - (separate columns with |) - - pref: AuthorisedValueImages choices: diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt index 9226dec..95201a0 100644 --- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt +++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt @@ -57,10 +57,13 @@ } function highlightOn() { var x; - for (x in q_array) { - $(".title").highlight(q_array[x]); - $(".author").highlight(q_array[x]); - $(".results_summary").highlight(q_array[x]); + for (x in q_array) { + var myStopwords = "[% OpacHighlightedStopWords %]".split('|'); + if( $.inArray(q_array[x], myStopwords) == -1 ) { + $(".title").highlight(q_array[x]); + $(".author").highlight(q_array[x]); + $(".results_summary").highlight(q_array[x]); + } } $(".highlight_toggle").toggle(); } diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tt b/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tt index 0df0322..2ad8a95 100644 --- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tt +++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tt @@ -98,11 +98,14 @@ function highlightOff() { function highlightOn() { var x; for (x in q_array) { - if ( q_array[x].length > 0 ) { - $(".title").highlight(q_array[x]); - $(".author").highlight(q_array[x]); - $(".results_summary").highlight(q_array[x]); - } + for (x in q_array) { + var myStopwords = "[% OpacHighlightedStopWords %]".split('|'); + if( $.inArray(q_array[x], myStopwords) == -1 ) { + $(".title").highlight(q_array[x]); + $(".author").highlight(q_array[x]); + $(".results_summary").highlight(q_array[x]); + } + } } $(".highlight_toggle").toggle(); } diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl index 9d0851f..ed5513e 100755 --- a/opac/opac-detail.pl +++ b/opac/opac-detail.pl @@ -1053,6 +1053,7 @@ $template->{VARS}->{OPACPopupAuthorsSearch} = C4::Context->preference('OPACPopup if (C4::Context->preference('OpacHighlightedWords')) { $template->{VARS}->{query_desc} = $query->param('query_desc'); + $template->{VARS}->{OpacHighlightedStopWords} = C4::Context->preference('OpacHighlightedStopWords'); } $template->{VARS}->{'trackclicks'} = C4::Context->preference('TrackClicks'); diff --git a/opac/opac-search.pl b/opac/opac-search.pl index 7d2b7a6..4275149 100755 --- a/opac/opac-search.pl +++ b/opac/opac-search.pl @@ -616,6 +616,11 @@ for (my $i=0;$i<@servers;$i++) { $total = $total + $results_hashref->{$server}->{"hits"}; } + # Add Stopwrods for query highlighting + if (C4::Context->preference('OpacHighlightedWords')) { + $template->{VARS}->{OpacHighlightedStopWords} = C4::Context->preference('OpacHighlightedStopWords'); + } + # Opac search history my $newsearchcookie; if (C4::Context->preference('EnableOpacSearchHistory')) { -- 1.8.1.2