koha-cvs
[Top][All Lists]
Advanced

[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");




reply via email to

[Prev in Thread] Current Thread [Next in Thread]