@@ -, +, @@ interfaces --- Koha/Quote.pm | 26 +++++++++++ .../en/modules/admin/preferences/opac.pref | 11 ++--- .../prog/en/modules/intranet-main.tt | 8 ++++ .../prog/en/modules/tools/quotes.tt | 5 +-- .../bootstrap/en/modules/opac-main.tt | 2 +- mainpage.pl | 4 +- opac/opac-main.pl | 5 +-- t/db_dependent/Koha/Quotes.t | 43 ++++++++++++++++++- 8 files changed, 89 insertions(+), 15 deletions(-) --- a/Koha/Quote.pm +++ a/Koha/Quote.pm @@ -22,6 +22,7 @@ use DBI qw(:sql_types); use Koha::Database; use Koha::DateUtils qw(dt_from_string); +use Koha::Exceptions::UnknownProgramState; use base qw(Koha::Object); @@ -106,6 +107,31 @@ sub get_daily_quote { return $quote; } +=head2 get_daily_quote_for_interface + + my $quote = Koha::Quote->get_daily_quote_for_interface(); + +Is a wrapper for get_daily_quote(), with an extra check for using the correct +interface defined in the syspref 'QuoteOfTheDay'. +If the current interface is not allowed to display quotes, then returns undef. + +=cut + +sub get_daily_quote_for_interface { + my ($self, %opts) = @_; + my $qotdPref = C4::Context->preference('QuoteOfTheDay'); + my $interface = C4::Context->interface(); + unless ($interface) { + my @cc = caller(3); + Koha::Exceptions::UnknownProgramState->throw(error => $cc[3]."()> C4::Context->interface() is not set! Don't know are you in OPAC or staff client?"); + } + unless ($qotdPref =~ /$interface/) { + return undef; + } + + return $self->get_daily_quote(%opts); +} + =head3 _type =cut --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref @@ -528,11 +528,12 @@ OPAC: - browsing and paging search results from the OPAC detail page. - - pref: QuoteOfTheDay - default: 0 - choices: - yes: Enable - no: Disable - - Quote of the Day display on OPAC home page + default: + class: short + - Quote of the Day display in Koha. + - Add 'opac' to show in OPAC home page. + - Add 'intranet' to show in the staff client main page. + - Example 'opac intranet', displays QOTD in OPAC and the staff client. - - pref: OPACPopupAuthorsSearch default: 0 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt @@ -34,6 +34,14 @@ [% END %] [% END %] + [% IF ( daily_quote ) %] +