-#
-# Change this value to reflect where you will store your includes
-#
-my %configfile;
-open (KC, "/etc/koha.conf");
-while (<KC>) {
- chomp;
- (next) if (/^\s*#/);
- if (/(.*)\s*=\s*(.*)/) {
- my $variable=$1;
- my $value=$2;
- # Clean up white space at beginning and end
- $variable=~s/^\s*//g;
- $variable=~s/\s*$//g;
- $value=~s/^\s*//g;
- $value=~s/\s*$//g;
- $configfile{$variable}=$value;
- }
-}
-my $path=$configfile{'path'};
-($path) || ($path="/usr/local/www/hdl/htdocs/includes");
-
-
-# here's a file-private function as a closure,
-# callable as &$priv_func; it cannot be prototyped.
-my $priv_func = sub {
-# stuff goes here.
- };
-
-# make all your functions, whether exported or not;
-
-sub startpage{
- my $string="<html>\n";
- return($string);
-}
+ # if the template doesn't exist, load the English one as a last resort
+ my $filename = "$htdocs/$theme/$lang/modules/$tmplbase";
+ unless (-f $filename) {
+ $lang = 'en';
+ $filename = "$htdocs/$theme/$lang/".($interface eq 'intranet'?"modules":"")."/$tmplbase";
+ }
+ my $template = HTML::Template::Pro->new(
+ filename => $filename,
+ die_on_bad_params => 1,
+ global_vars => 1,
+ case_sensitive => 1,
+ path => ["$htdocs/$theme/$lang/$path"]
+ );
+
+ $template->param(
+ themelang => ( $interface ne 'intranet' ? '/opac-tmpl' : '/intranet-tmpl' )
+ . "/$theme/$lang",
+ interface => ( $interface ne 'intranet' ? '/opac-tmpl' : '/intranet-tmpl' ),
+ theme => $theme,
+ opacstylesheet => $opacstylesheet,
+ opaccolorstylesheet => C4::Context->preference('opaccolorstylesheet'),
+ opacsmallimage => C4::Context->preference('opacsmallimage'),
+ lang => $lang
+ );
+
+ # Bidirectionality
+ my $current_lang = regex_lang_subtags($lang);
+ my $bidi;
+ $bidi = get_bidi($current_lang->{script}) if $current_lang->{script};
+
+ # Languages
+ my @template_languages;
+ my $languages_loop = getTranslatedLanguages($interface,$theme);
+
+ for my $language_hashref (@$languages_loop) {
+ $language_hashref->{'current_lang'} = $current_lang->{'language'};
+ $language_hashref->{'native_description'} = language_get_description($language_hashref->{'language_code'},$language_hashref->{'language_code'},'language');
+ #warn "($language_hashref->{'language_code'},$language_hashref->{'current_lang'},$language_hashref->{'script_code'}";
+ $language_hashref->{'locale_description'} = language_get_description($language_hashref->{'language_code'},$language_hashref->{'current_lang'},'language');
+ $language_hashref->{'language_description'} = language_get_description($language_hashref->{'language_code'},$language_hashref->{'current_lang'},'language');
+ $language_hashref->{'script_description'} = language_get_description($language_hashref->{'script_code'},$language_hashref->{'current_lang'},'script');
+ $language_hashref->{'region_description'} = language_get_description($language_hashref->{'region_code'},$language_hashref->{'current_lang'},'region');
+ $language_hashref->{'variant_description'} = language_get_description($language_hashref->{'variant_code'},$language_hashref->{'current_lang'},'variant');
+
+ if ($language_hashref->{'language_lang'} eq $lang) {
+ $language_hashref->{current}++;
+ }
+ push @template_languages, $language_hashref;
+ }
+ # load the languages ( for switching from one template to another )
+ $template->param( languages_loop => \@template_languages,
+ bidi => $bidi
+ );