User Tools

Site Tools


dev:opac:template-toolkit

This is an old revision of the document!


Template Toolkit OPAC

  • Author: Bill Erickson
  • Create Date: 2011-03-08

The Code

The code currently lives in an ESI Git branch called "template-toolkit-opac". You can view the code and watch changes here.

Downloading the code by creating a git clone of the branch

$ git clone git://git.evergreen-ils.org/evergreen/equinox.git
$ cd equinox
$ git checkout -tb template-toolkit-opac origin/template-toolkit-opac

The code changes frequently. You can update the code by pulling changes from the repository.

$ git checkout template-toolkit-opac # just in case
$ git pull

Installation

Prerequisites

  1. Install the following additional Perl modules via OS package manager or CPAN:
    • Template::Plugin::POSIX
    • Locale::Maketext::Lexicon

Installing Over an existing Evergreen installation (2.1+)

  1. Copy these files from the repository into place on the file system. Your mileage may vary on OS-dependent paths. Note: Be careful not to clobber local changes you didn't want clobbered.
    • $ sudo cp Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/
      $ sudo -u opensrf cp Open-ILS/examples/oils_web.xml.example /openils/conf/oils_web.xml
      $ sudo cp -r Open-ILS/src/perlmods/lib/OpenILS/WWW/* /usr/local/share/perl/5.10.1/OpenILS/WWW/
      $ sudo -u opensrf cp -r Open-ILS/src/templates* /openils/var/
  2. Reload or restart Apache.
  3. Navigate to http://SERVER/eg/opac/home and you should see the KCLS-skinned server-side OPAC.

Staff Client Integration

  • The eventual goal is to fully integrate the TT OPAC into the staff client. Until it's complete, it's necessary to manually configure the staff client to use the new OPAC.
  • To use the Template Toolkit OPAC as the catalog in the staff client, as opensrf:
    echo "urls['opac'] = '/eg/opac/advanced';
    urls['opac_rdetail'] = '/eg/opac/record/';
    urls['opac_rresult'] = '/eg/opac/results';
    urls['opac_rresult_metarecord'] = '/eg/opac/results?metarecord=';
    urls['browser'] = urls.opac;" > /openils/var/web/xul/server/skin/custom.js;

Customizing

Skinning

Skinning the TT OPAC is much easier than skinning previous incarnations of the Evergreen OPAC.

  • Create a directory where you will store your template customizations, let's say /openils/var/web/my_own_templates.
  • Look for the node <template_paths> in your /openils/conf/oils_web.xml file.
  • Add a new <path> child node directly above all existing ones so that everything within <template_paths> now looks something like this:
  <template_paths>
    <path>/openils/var/my_own_templates</path>
    <path>/openils/var/templates</path>
  </template_paths>
  • Place your version of all .tt2 files that you would edit into a directory structure that mirrors that of the stock template path. That is, if you want to have your own version of /openils/var/web/templates/default/opac/parts/topnav.tt2, put it at /openils/var/web/my_own_templates/default/opac/parts/topnav.tt2.
  • Do not copy every file under /openils/var/web/templates into my_own_templates – that is not necessary.
  • Reload Apache.

Custom Perl Handler

It's possible to override specific behavior of the default OPAC mod_perl handler by sub-classing the default and selecting methods to override.

  • Create a local Perl module that is a subclass of OpenILS::WWW::EGCatLoader. Example:
    package EGCatLoaderLocal;
    use base 'OpenILS::WWW::EGCatLoader';
    # override a single method
    sub redirect_auth {
        my $self = shift;
        return $self->generic_redirect("http://my-fancy-auth-service.example.org");
    }
  • Configure the new Perl module as the OPAC handler in Apache
    <Location /eg/opac>
        #PerlSetVar OILSWebContextLoader "OpenILS::WWW::EGCatLoader"
        PerlSetVar OILSWebContextLoader "EGCatLoaderLocal"
    </Location>
  • Reload Apache
dev/opac/template-toolkit.1312387695.txt.gz · Last modified: 2022/02/10 13:34 (external edit)

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

© 2008-2022 GPLS and others. Evergreen is open source software, freely licensed under GNU GPLv2 or later.
The Evergreen Project is a U.S. 501(c)3 non-profit organization.