webgui/lib/WebGUI/Template.pm
2002-05-07 01:51:07 +00:00

92 lines
3 KiB
Perl

package WebGUI::Template;
#####################################################################
#####################################################################
# NOTICE: Use of this subsystem is depricated and is not recommended.
#####################################################################
#####################################################################
#-------------------------------------------------------------------
# WebGUI is Copyright 2001-2002 Plain Black Software.
#-------------------------------------------------------------------
# Please read the legal notices (docs/legal.txt) and the license
# (docs/license.txt) that came with this distribution before using
# this software.
#-------------------------------------------------------------------
# http://www.plainblack.com info@plainblack.com
#-------------------------------------------------------------------
use strict qw(vars subs);
use Tie::IxHash;
use WebGUI::ErrorHandler;
use WebGUI::Session;
#-------------------------------------------------------------------
sub loadTemplates {
my ($templateDir, @files, $file, $use, @template, $i);
if ($^O =~ /Win/i) {
$templateDir = "\\lib\\WebGUI\\Template";
} else {
$templateDir = "/lib/WebGUI/Template";
}
opendir (DIR,$session{config}{webguiRoot}.$templateDir) or WebGUI::ErrorHandler::fatalError("Can't open template directory!");
@files = readdir(DIR);
foreach $file (@files) {
if ($file =~ /(.*?)\.pm$/) {
$template[$i] = $1;
$use = "require WebGUI::Template::".$template[$i];
eval($use);
if ($@) {
WebGUI::ErrorHandler::fatalError("Template load failed: ".$@);
}
$i++;
}
}
closedir(DIR);
return @template;
}
#-------------------------------------------------------------------
sub calculatePositions {
my (%positions, $string);
$string = "A";
$positions{A} = "A";
while ($string ne $_[0]) {
$string = ++$string;
$positions{$string} = $string;
}
return %positions;
}
#-------------------------------------------------------------------
sub getList {
my (@templates, $cmd, $template, $namespace, %list);
@templates = loadTemplates();
foreach $template (@templates) {
#$cmd = "WebGUI::Template::".$template."::namespace";
#$namespace = $$cmd;
$cmd = "WebGUI::Template::".$template."::name";
$list{$template} = &$cmd();
}
return %list;
}
#-------------------------------------------------------------------
sub getPositions {
my ($cmd, %hash);
tie %hash, "Tie::IxHash";
$cmd = "use WebGUI::Template::".$_[0];
eval($cmd);
$cmd = "WebGUI::Template::".$_[0]."::getPositions";
%hash = &$cmd;
return %hash;
}
1;