- }
- if ($theme and $lang) {
- return ($theme, $lang);
- } else {
- return ('default', 'en');
- }
-}
-
-
-=item pathtotemplate
-
- %values = &pathtotemplate(template => $template,
- theme => $themename,
- language => $language,
- type => $ptype,
- path => $includedir);
-
-Finds a directory containing the desired template. The C<template>
-argument specifies the template you're looking for (this should be the
-name of the script you're using to generate an HTML page, without the
-C<.pl> extension). Only the C<template> argument is required; the
-others are optional.
-
-C<theme> specifies the name of the theme to use. This will be used
-only if it is allowed by the C<allowthemeoverride> system preference
-option (in the C<systempreferences> table of the Koha database).
-
-C<language> specifies the desired language. If not specified,
-C<&pathtotemplate> will use the list of acceptable languages specified
-by the browser, then C<all>, and finally C<en> as fallback options.
-
-C<type> may be C<intranet>, C<opac>, C<none>, or some other value.
-C<intranet> and C<opac> specify that you want a template for the
-internal web site or the public OPAC, respectively. C<none> specifies
-that the template you're looking for is at the top level of one of the
-include directories. Any other value is taken as-is, as a subdirectory
-of one of the include directories.
-
-C<path> specifies an include directory.
-
-C<&pathtotemplate> searches first in the directory given by the
-C<path> argument, if any, then in the directories given by the
-C<templatedirectory> and C<includes> directives in F</etc/koha.conf>,
-in that order.
-
-C<&pathtotemplate> returns a hash with the following keys:
-
-=over 4
-
-=item C<path>
-
-The full pathname to the desired template.
-
-=item C<foundlanguage>
-
-The value is set to 1 if a template in the desired language was found,
-or 0 otherwise.
-
-=item C<foundtheme>
-
-The value is set to 1 if a template of the desired theme was found, or
-0 otherwise.
-
-=back
-
-If C<&pathtotemplate> cannot find an acceptable template, it returns 0.
-
-Note that if a template of the desired language or theme cannot be
-found, C<&pathtotemplate> will print a warning message. Unless you've
-set C<$SIG{__WARN__}>, though, this won't show up in the output HTML
-document.
-
-=cut
-#'
-# FIXME - Fix POD: it doesn't look in the directory given by the
-# 'includes' option in /etc/koha.conf.
-sub pathtotemplate {
- my %params = @_;
- my $template = $params{'template'};
- my $themeor = $params{'theme'};
- my $languageor = lc($params{'language'});
- my $ptype = lc($params{'type'} or 'intranet');
-
- # FIXME - Make sure $params{'template'} was given. Or else assume
- # "default".
- my $type;
- if ($ptype eq 'opac') {$type = 'opac-tmpl/'; }
- elsif ($ptype eq 'none') {$type = ''; }
- elsif ($ptype eq 'intranet') {$type = 'intranet-tmpl/'; }
- else {$type = $ptype . '/'; }
-
- my %returns;
- my %prefs= systemprefs();
- my $theme= $prefs{'theme'} || 'default';
- if ($themeor and ($prefs{'allowthemeoverride'} =~ qr/$themeor/i )) {$theme = $themeor;}
- my @languageorder = getlanguageorder();
- my $language = $languageor || shift(@languageorder);
-
- #where to search for templates
- my @tmpldirs = ("$path/templates", $path);
- unshift (@tmpldirs, C4::Context->config('templatedirectory')) if C4::Context->config('templatedirectory');
- unshift (@tmpldirs, $params{'path'}) if $params{'path'};
-
- my ($etheme, $elanguage, $epath);
-
- CHECK: foreach my $edir (@tmpldirs) {
- foreach $etheme ($theme, 'all', 'default') {
- foreach $elanguage ($language, @languageorder, 'all','en') {
- # 'en' is the fallback-language
- if (-e "$edir/$type$etheme/$elanguage/$template") {
- $epath = "$edir/$type$etheme/$elanguage/$template";
- last CHECK;
- }
- }