Appendix H. Using Koha as a Content Management System (CMS)

Table of Contents

1. Setup
1.1. Editing the pages template
1.2. Troubleshooting
1.3. Bonus Points
2. Usage
2.1. Adding Pages
2.2. Viewing your page
2.3. Example
2.4. Live Examples

1. Setup

These are instructions for taking a default install of Koha and allowing it to function as a little content management system. This will allow a library to publish an arbitrary number of pages based on a template. This example uses the template for the main opac page, but you could just as well use any template you wish with a bit more editing. This may be appropriate if you have a small library, want to allow librarians to easily add pages, and do not want to support a complete CMS.

  • Copy /usr/share/koha/opac/cgi-bin/opac/ to /usr/share/koha/opac/cgi-bin/opac/ (in the same directory)

  • Edit in an editor

  • At approximately line 33 change this code:

    template_name  => "opac-main.tmpl",
  • To this code:

    template_name  => "pages.tmpl", 
  • At approximately line 62 after this code:

               koha_news       => $all_koha_news, 
               koha_news_count => $koha_news_count,
               display_daily_quote => C4::Context->preference('QuoteOfTheDay'),
               daily_quote         => $quote,
  • Add these lines:

            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
  • Note file must have Webserver user execution permissions, you can use chmod command if you are actually logged in as such user:

            $chmod 755
  • In the browser go to Home > Administration > System Preferences > Local Use and add a New Preference called "page_test"

  • Fill it out as so

    • Explanation: test page for pages tiny cms

    • Variable: page_test

    • Value: Lorem ipsum

    • Click the TextArea link (or enter "TextArea" into the input field below it)

    • variable options (last field): 80|50

  • In a browser go to http://youraddress/cgi-bin/koha/ The page should come up with the words "Lorem ipsum" in the main content area of the page. (replace "youraddress" with localhost,, or your domain name depending on how you have Apache set up.)

  • To add more pages simply create a system preference where the title begins with "page_" followed by any arbitrary letters. You can add any markup you want as the value of the field. Reference the new page by changing the value of the "p" parameter in the URL.

To learn more visit the Koha wiki page on this topic:

The file to create / edit for the pages template will depend on your opacthemes system preference setting

  • Copy /usr/share/koha/opac/htdocs/opac-tmpl/bootstrap/en/modules/ to /usr/share/koha/opac/htdocs/opac-tmpl/bootstrap/en/modules/

  • Edit /usr/share/koha/opac/htdocs/opac-tmpl/bootstrap/en/modules/

  • At approximately line 61, change this:

            [% IF ( OpacMainUserBlock ) %]<div id="opacmainuserblock">[% OpacMainUserBlock %]</div>[% END %]
  • To this:

            [% IF ( page_test ) %]<div id="opacmainuserblock">[% page_test %]</div>[% END %]

Remark: You may wish to disable your News block of these CMS style pages e.g. when you do not want it displayed on the CMS style pages or where the News block is long enough that it actually makes the 'page_test' include scroll outside the default viewport dimensions. In that case, remove the following code from your template.

	              [% IF ( koha_news_count ) %]
                      <div id="news">
                      <table class="table table-bordered">
                      [% FOREACH koha_new IN koha_news %]
                        <thead><tr><th>[% koha_new.title %]</th></tr></thead>
                        <tbody><tr><td><p>[% %]</p>
                        <p class="newsfooter"><i>(published on [% koha_new.newdate %])</i></p></td></tr></tbody>
                      [% END %]
                     [% END %]

If you have problems check file permissions on and pages.tmpl. They should have the same user and group as other Koha files like

Instead of using the address http://youraddress/cgi-bin/koha/ you can shorten it to http://youraddress/ Just open up /etc/koha/koha-httpd.conf and add the follow at about line 13:

ScriptAlias / "/usr/share/koha/opac/cgi-bin/opac/" 

Then restart Apache.