From d6e1c6ffe639c08be9876c9e6f2f3551b3a82cb0 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Thu, 14 Feb 2019 15:49:25 +0000 Subject: [PATCH] Bug 22318: Example implementation: OpacNavRight system preference This patch implements a Koha news system replacement of the OpacNavRight system preference. The changes to koha-news.tt enable the selection of "OpacNavRight" as a location for the content. opac-main.pl is modified to ensure that the user's selected language is passed to the template for use by the KohaNews plugin. The database update process takes the contents of Koha's OpacNavRight system preference and adds it to the Koha news system. The OpacNavRight system preference is then removed from the database. When the new entry is added to Koha news, the language is set based on the top selected language in the "opaclanguages" preference. The entry is added to "All libraries" without an author, title, or expiration date. Note that this patch doesn't change the way OPAC news is displayed. I think it's best to keep existing markup and code for that since it handles details like branch selection and RSS. To test, apply the patch and run the database update. - In the staff client go to Tools -> News and confirm that there is now an entry with the location "OpacNavRight_en" (assuming an "en" English interface). - Confirm that the previous contents of OpacNavRight were added correctly. - Go to Administration -> System preferences -> OPAC and verify that the OpacNavRight preference has been removed. - In the OPAC, confirm that the correct content is displayed in the region previously defined in the OpacNavRight system preference. - Test that the language and library-specific nature of news items is reflected in the behavior of this content area: - Define different text based on language and location. Confirm that switching translations and logging in to the OPAC both trigger the correct display of different content. Signed-off-by: Michal Denar Signed-off-by: Josef Moravec Signed-off-by: Martin Renvoize Signed-off-by: Nick Clemens --- .../bug_22313-move-opacnavright-to-news.perl | 18 +++++++++++++ installer/data/mysql/sysprefs.sql | 1 - .../en/modules/admin/preferences/opac.pref | 6 ----- .../prog/en/modules/tools/koha-news.tt | 26 ++++++++++++++----- .../bootstrap/en/modules/opac-main.tt | 7 ++--- opac/opac-main.pl | 1 + 6 files changed, 40 insertions(+), 19 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_22313-move-opacnavright-to-news.perl diff --git a/installer/data/mysql/atomicupdate/bug_22313-move-opacnavright-to-news.perl b/installer/data/mysql/atomicupdate/bug_22313-move-opacnavright-to-news.perl new file mode 100644 index 0000000000..bce5c64ff3 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_22313-move-opacnavright-to-news.perl @@ -0,0 +1,18 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + my $opaclang = C4::Context->preference("opaclanguages"); + my @langs; + push @langs, split ( '\,', $opaclang ); + # Get any existing value from the OpacNavRight system preference + my ($OpacNavRight) = $dbh->selectrow_array( q| + SELECT value FROM systempreferences WHERE variable='OpacNavRight'; + |); + if( $OpacNavRight ){ + # If there is a value in the OpacNavRight preference, insert it into opac_news + $dbh->do("INSERT INTO opac_news (branchcode, lang, title, content ) VALUES (NULL, 'OpacNavRight_$langs[0]', '', '$OpacNavRight')"); + } + # Remove the OpacNavRight system preference + $dbh->do("DELETE FROM systempreferences WHERE variable='OpacNavRight'"); + SetVersion ($DBversion); + print "Upgrade to $DBversion done (Bug 22318: Move contents of OpacNavRight preference to Koha news system)\n"; +} diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index 2e8f2a45cd..35c9ff0663 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -393,7 +393,6 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('OPACMySummaryNote','','','Note to display on the patron summary page. This note only appears if the patron is connected.','Free'), ('OpacNav','Important links here.','70|10','Use HTML tags to add navigational links to the left-hand navigational bar in OPAC','Textarea'), ('OpacNavBottom','Important links here.','70|10','Use HTML tags to add navigational links to the left-hand navigational bar in OPAC','Textarea'), -('OpacNavRight','','70|10','Show the following HTML in the right hand column of the main page under the main login form','Textarea'), ('OpacNewsLibrarySelect','0','','Show selector for branches on OPAC news page','YesNo'), ('OPACNoResultsFound','','70|10','Display this HTML when no results are found for a search in the OPAC','Textarea'), ('OPACNumbersPreferPhrase','0',NULL,'Control the use of phr operator in callnumber and standard number OPAC searches','YesNo'), 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 3112807f39..b2495d229a 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 @@ -228,12 +228,6 @@ OPAC: type: textarea syntax: text/html class: code - - - - "Show the following HTML in the right hand column of the main page under the main login form:" - - pref: OpacNavRight - type: textarea - syntax: text/html - class: code - - "Show the following HTML on the left hand column of the main page and patron account on the OPAC, after OpacNav, and before patron account links if available:" - pref: OpacNavBottom diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/koha-news.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/koha-news.tt index f2c34a8b7d..3096ece9bd 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/koha-news.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/koha-news.tt @@ -39,8 +39,10 @@ Edit news item[% ELSE %]Add news item[% END %][% ELSE %]News[% END %] [% END %] [% IF ( add_form ) %] - [% IF ( op == 'add' ) %][% default_lang = lang | html %] - [% ELSE %][% default_lang = new_detail.lang | html %] + [% IF ( op == 'add' ) %] + [% default_lang = lang %] + [% ELSE %] + [% default_lang = new_detail.lang %] [% END %]
@@ -66,11 +68,21 @@ Edit news item[% ELSE %]Add news item[% END %][% ELSE %]News[% END %] [% END %] [% FOREACH lang_lis IN lang_list %] - [% IF ( lang_lis.language == default_lang ) %] - - [% ELSE %] - - [% END %] + + [% FOREACH location IN [ '', 'OpacNavRight' ] %] + [% IF ( location == '' ) %] + [% SET location_lang = lang_lis.language %] + [% SET location = "OPAC news" %] + [% ELSE %] + [% SET location_lang = location _ "_" _ lang_lis.language %] + [% END %] + [% IF ( location_lang == default_lang ) %] + + [% ELSE %] + + [% END %] + [% END %] + [% END %] diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt index bd9fb86d25..b48e92284f 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt @@ -4,6 +4,7 @@ [% USE Branches %] [% USE Categories %] [% USE Price %] +[% USE KohaNews %] [% INCLUDE 'doc-head-open.inc' %] [% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %] catalog [% INCLUDE 'doc-head-close.inc' %] @@ -212,11 +213,7 @@ [% END %] [% END # /loggedinusername %] [% END # /opacuserlogin %] - [% IF ( OpacNavRight ) %] -
- [% OpacNavRight | $raw %] -
- [% END # /OpacNavRight %] + [% PROCESS koha_news_block news => KohaNews.get( location => "OpacNavRight", lang => news_lang, library => branchcode ) %] [% END # /opacuserlogin || OpacNavRight %] diff --git a/opac/opac-main.pl b/opac/opac-main.pl index 965618c5d3..4af6f1a818 100755 --- a/opac/opac-main.pl +++ b/opac/opac-main.pl @@ -104,6 +104,7 @@ if ( $patron ) { $template->param( koha_news => @all_koha_news, + news_lang => $news_lang, branchcode => $homebranch, display_daily_quote => C4::Context->preference('QuoteOfTheDay'), daily_quote => $quote, -- 2.39.5