[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] CVS: koha/C4 Output.pm,1.15,1.16
From: |
Dorian Meid |
Subject: |
[Koha-cvs] CVS: koha/C4 Output.pm,1.15,1.16 |
Date: |
Tue, 17 Sep 2002 05:42:54 -0700 |
Update of /cvsroot/koha/koha/C4
In directory usw-pr-cvs1:/tmp/cvs-serv24844/koha/C4
Modified Files:
Output.pm
Log Message:
Added getpathtotemplate-function
Index: Output.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Output.pm,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -r1.15 -r1.16
*** Output.pm 14 Aug 2002 18:12:51 -0000 1.15
--- Output.pm 17 Sep 2002 12:42:52 -0000 1.16
***************
*** 27,30 ****
--- 27,31 ----
use C4::Database;
+ use C4::Search; #for getting the systempreferences
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
***************
*** 41,44 ****
--- 42,46 ----
&gotopage &mkformnotable &mkform3
&getkeytableselectoptions
+ &pathtotemplate
&picktemplate);
%EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
***************
*** 118,121 ****
--- 120,203 ----
}
+ sub pathtotemplate {
+ my %params = @_;
+ my $template = $params{'template'};
+ my $themeor = $params{'theme'};
+ my $languageor = lc($params{'language'});
+ my $ptype = lc($params{'type'} or 'intranet');
+
+ 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, $configfile{'templatedirectory'}) if
$configfile{'templatedirectory'};
+ unshift (@tmpldirs, $params{'path'}) if $params{'path'};
+
+ my ($edir, $etheme, $elanguage, $epath);
+
+ CHECK: foreach (@tmpldirs) {
+ $edir= $_;
+ foreach ($theme, 'all', 'default') {
+ $etheme=$_;
+ foreach ($language, @languageorder, 'all','en') { # 'en' is the
fallback-language
+ $elanguage = $_;
+ if (-e "$edir/$type$etheme/$elanguage/$template") {
+ $epath = "$edir/$type$etheme/$elanguage/$template";
+ last CHECK;
+ }
+ }
+ }
+ }
+
+ unless ($epath) {
+ warn "Could not find $template in @tmpldirs";
+ return 0;
+ }
+
+ if ($language eq $elanguage) {
+ $returns{'foundlanguage'} = 1;
+ } else {
+ $returns{'foundlanguage'} = 0;
+ warn "The language $language could not be found for $template of
$theme.\nServing $elanguage instead.\n";
+ }
+ if ($theme eq $etheme) {
+ $returns{'foundtheme'} = 1;
+ } else {
+ $returns{'foundtheme'} = 0;
+ warn "The template $template could not be found for theme
$theme.\nServing $template of $etheme instead.\n";
+ }
+
+ $returns{'path'} = $epath;
+
+ return (%returns);
+ }
+
+ sub getlanguageorder () {
+ my @languageorder;
+ my %prefs = systemprefs();
+
+ if ($ENV{'HTTP_ACCEPT_LANGUAGE'}) {
+ @languageorder = split (/,/ ,lc($ENV{'HTTP_ACCEPT_LANGUAGE'}));
+ } elsif ($prefs{'languageorder'}) {
+ @languageorder = split (/,/ ,lc($prefs{'languageorder'}));
+ } else { # here should be another elsif checking for apache's languageorder
+ @languageorder = ('en');
+ }
+
+ return (@languageorder);
+ }
+
+
sub startpage() {
return("<html>\n");
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] CVS: koha/C4 Output.pm,1.15,1.16,
Dorian Meid <=
- Prev by Date:
[Koha-cvs] CVS: koha/koha-tmpl - Imported sources
- Next by Date:
[Koha-cvs] CVS: koha/koha-tmpl/intranet-tmpl/default/en boraccount.tmpl,1.1.1.1,1.2 imemberentry.tmpl,1.1.1.1,1.2 jmemberentry.tmpl,1.1.1.1,1.2 memberentry.tmpl,1.1.1.1,1.2
- Previous by thread:
[Koha-cvs] CVS: koha/koha-tmpl - Imported sources
- Next by thread:
[Koha-cvs] CVS: koha/koha-tmpl/intranet-tmpl/default/en boraccount.tmpl,1.1.1.1,1.2 imemberentry.tmpl,1.1.1.1,1.2 jmemberentry.tmpl,1.1.1.1,1.2 memberentry.tmpl,1.1.1.1,1.2
- Index(es):