[Koha-patches] [PATCH] Bug 12806: Adding 'Koha as a CMS' to the OPAC for bootstrap OPAC themes in line with http://wiki.koha-community.org/wiki/Koha_as_a_CMS

Indranil Das Gupta indradg at gmail.com
Fri Aug 22 04:39:34 CEST 2014


Test plan :

   1) Apply this patch;

   2) In the browser go to Home › Administration › System Preferences > Local Use
      and add a New Preference called "page_test" and fill it out as follows:

      (a) Explanation: test page for pages tiny cms

      (b) Variable: page_test

      (c) Value: <h1>Lorem ipsum</h1><hr/><p>Lorem ipsum dolor sit amet</p>

      (d) Variable type: Textarea

      (e) Variable options: 80|50

   3) Browse to http://<your_OPAC_address>/cgi-bin/koha/pages.pl?p=test

   4) The page should come up with the words "Lorem ipsum" in the main content
      area of the page, with a horizontal rule followed by the paragraph text
      "Lorem ipsum dolor sit amet".
---
 koha-tmpl/opac-tmpl/bootstrap/en/modules/pages.tt | 90 +++++++++++++++++++++++
 opac/pages.pl                                     | 76 +++++++++++++++++++
 2 files changed, 166 insertions(+)
 create mode 100644 koha-tmpl/opac-tmpl/bootstrap/en/modules/pages.tt
 create mode 100755 opac/pages.pl

diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/pages.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/pages.tt
new file mode 100644
index 0000000..7010356
--- /dev/null
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/pages.tt
@@ -0,0 +1,90 @@
+[% USE Koha %]
+[% INCLUDE 'doc-head-open.inc' %]
+[% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog
+[% INCLUDE 'doc-head-close.inc' %]
+[% BLOCK cssinclude %][% END %]
+</head>
+<body id="opac-main">
+[% INCLUDE 'masthead.inc' %]
+
+<div class="main">
+    <ul class="breadcrumb">
+        <li><a href="#">Home</a></li>
+    </ul>
+
+    [% IF Koha.Preference( 'opacuserlogin' ) == 1 %]
+        [% IF ( loggedinusername ) %]
+            <div id="loggedin" class="container-fluid">
+        [% ELSE %]
+            <div id="notloggedin" class="container-fluid">
+        [% END %]
+    [% ELSE %]
+        <div id="notloggedin" class="container-fluid">
+    [% END %]
+
+    <div class="row-fluid">
+    [% IF ( OpacNav ||  OpacNavBottom ) %]
+        <div class="span2">
+            <div id="navigation">
+                [% INCLUDE 'navigation.inc' %]
+            </div>
+        </div>
+    [% END %]
+
+    [% IF ( OpacNav ||  OpacNavBottom  ) %]
+        <div class="span7">
+    [% ELSE %]
+        <div class="span9">
+    [% END %]
+
+        [% IF ( display_daily_quote && daily_quote ) %]
+            <div id="daily-quote">
+                <h3>Quote of the Day</h3>
+                <div>
+                    <span id="daily-quote-text">[% daily_quote.text %]</span><span id="daily-quote-sep"> ~ </span><span id="daily-quote-source">[% daily_quote.source %]</span>
+                </div>
+            </div>
+        [% END %]
+
+        [% IF ( page_test ) %]<div id="opacmainuserblock">[% page_test %]</div>[% END %]
+        </div> <!-- / .span 7/9 -->
+
+        [% IF ( ( Koha.Preference( 'opacuserlogin' ) == 1 ) || OpacNavRight ) %]
+            <div class="span3">
+                [% IF Koha.Preference( 'opacuserlogin' ) == 1 %]
+                    [% UNLESS ( loggedinusername ) %]
+                        [% UNLESS ( casAuthentication ) %]
+                            <div id="login">
+                                <form action="/cgi-bin/koha/opac-user.pl" method="post" name="auth" id="auth">
+                                    <input type="hidden" name="koha_login_context" value="opac" />
+                                    <fieldset class="brief">
+                                        <legend>Log in to your account:</legend>
+                                        <label for="userid">Login:</label><input type="text" id="userid" name="userid" />
+                                        <label for="password">Password:</label><input type="password" id="password" name="password" />
+                                    <fieldset class="action">
+                                        <input type="submit" value="Log in" class="btn" />
+                                    </fieldset>
+                                    [% IF PatronSelfRegistration && PatronSelfRegistrationDefaultCategory %]<div id="patronregistration"><p>Don't have an account? <a href="/cgi-bin/koha/opac-memberentry.pl">Register here.</a></p></div>[% END %]
+                                    </fieldset>
+                                </form>
+                            </div> <!-- /#login -->
+                        [% END # /casAuthentication %]
+                        [% IF persona %]
+                            <a href="#" class="persona-button" id="browserid" ><span>Sign in with your email</span></a>
+                        [% END # /persona %]
+                    [% END # / loggedinusername %]
+                [% END # /opacuserlogin %]
+                [% IF ( OpacNavRight ) %]
+                    <div id="opacnavright">
+                        [% OpacNavRight %]
+                    </div>
+                [% END # /OpacNavRight %]
+            </div> <!-- / .span3 -->
+        [% END # /opacuserlogin || OpacNavRight %]
+
+        </div> <!-- /.container-fluid -->
+    </div> <!-- /.row-fluid -->
+</div> <!-- /.main -->
+
+[% INCLUDE 'opac-bottom.inc' %]
+[% BLOCK jsinclude %][% END %]
diff --git a/opac/pages.pl b/opac/pages.pl
new file mode 100755
index 0000000..17452e2
--- /dev/null
+++ b/opac/pages.pl
@@ -0,0 +1,76 @@
+#!/usr/bin/perl
+
+# This file is part of Koha.
+#
+# Koha is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+use strict;
+use warnings;
+use CGI;
+use C4::Auth;    # get_template_and_user
+use C4::Output;
+use C4::NewsChannels;    # get_opac_news
+use C4::Languages qw(getTranslatedLanguages accept_language);
+use C4::Koha qw( GetDailyQuote );
+
+my $input = new CGI;
+my $dbh   = C4::Context->dbh;
+
+my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
+    {
+        template_name   => "pages.tt",
+        type            => "opac",
+        query           => $input,
+        authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ),
+        flagsrequired   => { borrow => 1 },
+    }
+);
+
+my $casAuthentication = C4::Context->preference('casAuthentication');
+$template->param(
+    casAuthentication   => $casAuthentication,
+);
+
+
+# display news
+# use cookie setting for language, bug default to syspref if it's not set
+my ($theme, $news_lang, $availablethemes) = C4::Templates::themelanguage(C4::Context->config('opachtdocs'),'opac-main.tt','opac',$input);
+
+my $all_koha_news   = &GetNewsToDisplay($news_lang);
+my $koha_news_count = scalar @$all_koha_news;
+
+my $quote = GetDailyQuote();   # other options are to pass in an exact quote id or select a random quote each pass... see perldoc C4::Koha
+
+$template->param(
+    koha_news           => $all_koha_news,
+    koha_news_count     => $koha_news_count,
+    display_daily_quote => C4::Context->preference('QuoteOfTheDay'),
+    daily_quote         => $quote,
+);
+
+my $page = "page_" . $input->param('p');            # go for "p" value in URL and do the concatenation
+my $preference = C4::Context->preference($page);    # Go for preference
+$template->{VARS}->{'page_test'} = $preference;     # pass variable to template pages.tt
+
+# If GoogleIndicTransliteration system preference is On Set paramter to load Google's javascript in OPAC search screens
+if (C4::Context->preference('GoogleIndicTransliteration')) {
+        $template->param('GoogleIndicTransliteration' => 1);
+}
+
+if (C4::Context->preference('OPACNumbersPreferPhrase')) {
+        $template->param('numbersphr' => 1);
+}
+
+output_html_with_http_headers $input, $cookie, $template->output;
-- 
1.8.1.2



More information about the Koha-patches mailing list