summaryrefslogtreecommitdiffstats
path: root/ldap-site-mngmt/webinterface/class.FastTemplate.php
diff options
context:
space:
mode:
Diffstat (limited to 'ldap-site-mngmt/webinterface/class.FastTemplate.php')
-rw-r--r--ldap-site-mngmt/webinterface/class.FastTemplate.php768
1 files changed, 0 insertions, 768 deletions
diff --git a/ldap-site-mngmt/webinterface/class.FastTemplate.php b/ldap-site-mngmt/webinterface/class.FastTemplate.php
deleted file mode 100644
index d048ee5c..00000000
--- a/ldap-site-mngmt/webinterface/class.FastTemplate.php
+++ /dev/null
@@ -1,768 +0,0 @@
-<?
-################################################
-#### Angepasst an PHP4 von ####
-#### Timothy Burk - Webdesign & PC-Service ####
-#### info@tburk.com ####
-################################################
-/*
- CVS Revision. 1.1.0
-*/
-
-/*
- eine weitere kleine Anpassung von Thomas Nunninger betrifft das append in der
- parse-Funktion. Bei error_reporting(E_ALL) erschien sonst beim ersten Anhängen
- an eine noch nicht vorhandene Variable eine Fehlermeldung.
-*/
-
-class FastTemplate {
-
- var $FILELIST = array(); // Holds the array of filehandles
- // FILELIST[HANDLE] == "fileName"
-
- var $DYNAMIC = array(); // Holds the array of dynamic
- // blocks, and the fileHandles they
- // live in.
-
- var $PARSEVARS = array(); // Holds the array of Variable
- // handles.
- // PARSEVARS[HANDLE] == "value"
-
- var $LOADED = array(); // We only want to load a template
- // once - when it's used.
- // LOADED[FILEHANDLE] == 1 if loaded
- // undefined if not loaded yet.
-
- var $HANDLE = array(); // Holds the handle names assigned
- // by a call to parse()
-
- var $ROOT = ""; // Holds path-to-templates
-
- var $WIN32 = false; // Set to true if this is a WIN32 server
-
- var $ERROR = ""; // Holds the last error message
-
- var $LAST = ""; // Holds the HANDLE to the last
- // template parsed by parse()
-
- var $STRICT = true; // Strict template checking.
- // Unresolved vars in templates will
- // generate a warning when found.
-
-// ************************************************************
-
- function FastTemplate ($pathToTemplates = "")
- {
- global $php_errormsg;
-
- if(!empty($pathToTemplates))
- {
- $this->set_root($pathToTemplates);
- }
-
- } // end (new) FastTemplate ()
-
-
-// ************************************************************
-// All templates will be loaded from this "root" directory
-// Can be changed in mid-process by re-calling with a new
-// value.
-
- function set_root ($root)
- {
- $trailer = substr($root,-1);
-
- if(!$this->WIN32)
- {
- if( (ord($trailer)) != 47 )
- {
- $root = "$root".chr(47);
- }
-
- if(is_dir($root))
- {
- $this->ROOT = $root;
- }
- else
- {
- $this->ROOT = "";
- $this->error("Specified ROOT dir [$root] is not a directory");
- }
- }
- else
- {
- // WIN32 box - no testing
- if( (ord($trailer)) != 92 )
- {
- $root = "$root".chr(92);
- }
- $this->ROOT = $root;
- }
-
- } // End set_root()
-
-
-// **************************************************************
-// Calculates current microtime
-// I throw this into all my classes for benchmarking purposes
-// It's not used by anything in this class and can be removed
-// if you don't need it.
-
-
- function utime ()
- {
- $time = explode( " ", microtime());
- $usec = (double)$time[0];
- $sec = (double)$time[1];
- return $sec + $usec;
- }
-
-// **************************************************************
-// Strict template checking, if true sends warnings to STDOUT when
-// parsing a template with undefined variable references
-// Used for tracking down bugs-n-such. Use no_strict() to disable.
-
- function strict ()
- {
- $this->STRICT = true;
- }
-
-// ************************************************************
-// Silently discards (removes) undefined variable references
-// found in templates
-
- function no_strict ()
- {
- $this->STRICT = false;
- }
-
-// ************************************************************
-// A quick check of the template file before reading it.
-// This is -not- a reliable check, mostly due to inconsistencies
-// in the way PHP determines if a file is readable.
-
- function is_safe ($filename)
- {
- if(!file_exists($filename))
- {
- $this->error("[$filename] does not exist",0);
- return false;
- }
- return true;
- }
-
-// ************************************************************
-// Grabs a template from the root dir and
-// reads it into a (potentially REALLY) big string
-
- function get_template ($template)
- {
- if(empty($this->ROOT))
- {
- $this->error("Cannot open template. Root not valid.",1);
- return false;
- }
-
- $filename = "$this->ROOT"."$template";
-
- $contents = implode("",(@file($filename)));
- if( (!$contents) or (empty($contents)) )
- {
- $this->error("get_template() failure: [$filename] $php_errormsg",1);
- }
-
- return $contents;
-
- } // end get_template
-
-// ************************************************************
-// Prints the warnings for unresolved variable references
-// in template files. Used if STRICT is true
-
- function show_unknowns ($Line)
- {
- $unknown = array();
- if (ereg("({[A-Z0-9_]+})",$Line,$unknown))
- {
- $UnkVar = $unknown[1];
- if(!(empty($UnkVar)))
- {
- @error_log("[FastTemplate] Warning: no value found for variable: $UnkVar ",0);
- }
- }
- } // end show_unknowns()
-
-// ************************************************************
-// This routine get's called by parse() and does the actual
-// {VAR} to VALUE conversion within the template.
-
- function parse_template ($template, $tpl_array)
- {
- while ( list ($key,$val) = each ($tpl_array) )
- {
- if (!(empty($key)))
- {
- if(gettype($val) != "string")
- {
- settype($val,"string");
- }
-
- $template = ereg_replace("\{$key}","$val","$template");
- //$template = str_replace("\{$key}","$val","$template");
- }
- }
-
- if(!$this->STRICT)
- {
- // Silently remove anything not already found
-
- $template = ereg_replace("\{([A-Z0-9_]+)}","",$template);
- }
- else
- {
- // Warn about unresolved template variables
- if (ereg("(\{[A-Z0-9_]+})",$template))
- {
- $unknown = split("\n",$template);
- while (list ($Element,$Line) = each($unknown) )
- {
- $UnkVar = $Line;
- if(!(empty($UnkVar)))
- {
- $this->show_unknowns($UnkVar);
- }
- }
- }
- }
- return $template;
-
- } // end parse_template();
-
-// ************************************************************
-// The meat of the whole class. The magic happens here.
-
- function parse ( $ReturnVar, $FileTags )
- {
- $append = false;
- $this->LAST = $ReturnVar;
- $this->HANDLE[$ReturnVar] = 1;
-
- if (gettype($FileTags) == "array")
- {
- unset($this->$ReturnVar); // Clear any previous data
-
- while ( list ( $key , $val ) = each ( $FileTags ) )
- {
- if ( (!isset($this->$val)) || (empty($this->$val)) )
- {
- $this->LOADED["$val"] = 1;
- if(isset($this->DYNAMIC["$val"]))
- {
- $this->parse_dynamic($val,$ReturnVar);
- }
- else
- {
- $fileName = $this->FILELIST["$val"];
- $this->$val = $this->get_template($fileName);
- }
- }
-
- // Array context implies overwrite
-
- $this->$ReturnVar = $this->parse_template($this->$val,$this->PARSEVARS);
-
- // For recursive calls.
-
- $this->assign( array( $ReturnVar => $this->$ReturnVar ) );
-
- }
- } // end if FileTags is array()
- else
- {
- // FileTags is not an array
-
- $val = $FileTags;
-
- if( (substr($val,0,1)) == '.' )
- {
- // Append this template to a previous ReturnVar
-
- $append = true;
- $val = substr($val,1);
- }
-
- if ( (!isset($this->$val)) || (empty($this->$val)) )
- {
- $this->LOADED["$val"] = 1;
- if(isset($this->DYNAMIC["$val"]))
- {
- $this->parse_dynamic($val,$ReturnVar);
- }
- else
- {
- $fileName = $this->FILELIST["$val"];
- $this->$val = $this->get_template($fileName);
- }
- }
-
- if($append)
- {
- // Thomas> auch hier append korrigiert
- if (isset($this->$ReturnVar)) {
- $this->$ReturnVar .= $this->parse_template($this->$val,$this->PARSEVARS);
- } else {
- $this->$ReturnVar = $this->parse_template($this->$val,$this->PARSEVARS);
- }
- }
- else
- {
- $this->$ReturnVar = $this->parse_template($this->$val,$this->PARSEVARS);
- }
-
- // For recursive calls.
-
- $this->assign(array( $ReturnVar => $this->$ReturnVar) );
-
- }
- return;
- } // End parse()
-
-
-// ************************************************************
-
- function FastPrint ( $template = "" )
- {
- if(empty($template))
- {
- $template = $this->LAST;
- }
-
- if( (!(isset($this->$template))) || (empty($this->$template)) )
- {
- $this->error("Nothing parsed, nothing printed",0);
- return;
- }
- else
- {
- print $this->$template;
- }
- return;
- }
-
-// ************************************************************
-
- function fetch ( $template = "" )
- {
- if(empty($template))
- {
- $template = $this->LAST;
- }
- if( (!(isset($this->$template))) || (empty($this->$template)) )
- {
- $this->error("Nothing parsed, nothing printed",0);
- return "";
- }
-
- return($this->$template);
- }
-
-
-// ************************************************************
-
- function define_dynamic ($Macro, $ParentName)
- {
- // A dynamic block lives inside another template file.
- // It will be stripped from the template when parsed
- // and replaced with the {$Tag}.
-
- $this->DYNAMIC["$Macro"] = $ParentName;
- return true;
- }
-
-// ************************************************************
-
- function parse_dynamic ($Macro,$MacroName)
- {
- // The file must already be in memory.
-
- $ParentTag = $this->DYNAMIC["$Macro"];
- // Thomas> in Folgezeile !isset($this->$ParentTag eingefügt
- if( (!isset($this->$ParentTag) || !$this->$ParentTag) or (empty($this->$ParentTag)) )
- {
- $fileName = $this->FILELIST[$ParentTag];
- $this->$ParentTag = $this->get_template($fileName);
- $this->LOADED[$ParentTag] = 1;
- }
- if($this->$ParentTag)
- {
- $template = $this->$ParentTag;
- $DataArray = split("\n",$template);
- $newMacro = "";
- $newParent = "";
- $outside = true;
- $start = false;
- $end = false;
- while ( list ($lineNum,$lineData) = each ($DataArray) )
- {
- $lineTest = trim($lineData);
- if("<!-- BEGIN DYNAMIC BLOCK: $Macro -->" == "$lineTest" )
- {
- $start = true;
- $end = false;
- $outside = false;
- }
- if("<!-- END DYNAMIC BLOCK: $Macro -->" == "$lineTest" )
- {
- $start = false;
- $end = true;
- $outside = true;
- }
- if( (!$outside) and (!$start) and (!$end) )
- {
- $newMacro .= "$lineData\n"; // Restore linebreaks
- }
- if( ($outside) and (!$start) and (!$end) )
- {
- $newParent .= "$lineData\n"; // Restore linebreaks
- }
- if($end)
- {
- $newParent .= "\{$MacroName}\n";
- }
- // Next line please
- if($end) { $end = false; }
- if($start) { $start = false; }
- } // end While
-
- $this->$Macro = $newMacro;
- $this->$ParentTag = $newParent;
- return true;
-
- } // $ParentTag NOT loaded - MAJOR oopsie
- else
- {
- @error_log("ParentTag: [$ParentTag] not loaded!",0);
- $this->error("ParentTag: [$ParentTag] not loaded!",0);
- }
- return false;
- }
-
-// ************************************************************
-// Strips a DYNAMIC BLOCK from a template.
-
- function clear_dynamic ($Macro="")
- {
- if(empty($Macro)) { return false; }
-
- // The file must already be in memory.
-
- $ParentTag = $this->DYNAMIC["$Macro"];
-
- if( (!$this->$ParentTag) or (empty($this->$ParentTag)) )
- {
- $fileName = $this->FILELIST[$ParentTag];
- $this->$ParentTag = $this->get_template($fileName);
- $this->LOADED[$ParentTag] = 1;
- }
-
- if($this->$ParentTag)
- {
- $template = $this->$ParentTag;
- $DataArray = split("\n",$template);
- $newParent = "";
- $outside = true;
- $start = false;
- $end = false;
- while ( list ($lineNum,$lineData) = each ($DataArray) )
- {
- $lineTest = trim($lineData);
- if("<!-- BEGIN DYNAMIC BLOCK: $Macro -->" == "$lineTest" )
- {
- $start = true;
- $end = false;
- $outside = false;
- }
- if("<!-- END DYNAMIC BLOCK: $Macro -->" == "$lineTest" )
- {
- $start = false;
- $end = true;
- $outside = true;
- }
- if( ($outside) and (!$start) and (!$end) )
- {
- $newParent .= "$lineData\n"; // Restore linebreaks
- }
- // Next line please
- if($end) { $end = false; }
- if($start) { $start = false; }
- } // end While
-
- $this->$ParentTag = $newParent;
- return true;
-
- } // $ParentTag NOT loaded - MAJOR oopsie
- else
- {
- @error_log("ParentTag: [$ParentTag] not loaded!",0);
- $this->error("ParentTag: [$ParentTag] not loaded!",0);
- }
- return false;
- }
-
-
-// ************************************************************
-
- function define ($fileList)
- {
- while ( list ($FileTag,$FileName) = each ($fileList) )
- {
- $this->FILELIST["$FileTag"] = $FileName;
- }
- return true;
- }
-
-// ************************************************************
-
- function clear_parse ( $ReturnVar = "")
- {
- $this->clear($ReturnVar);
- }
-
-// ************************************************************
-
- function clear ( $ReturnVar = "" )
- {
- // Clears out hash created by call to parse()
-
- if(!empty($ReturnVar))
- {
- if( (gettype($ReturnVar)) != "array")
- {
- unset($this->$ReturnVar);
- return;
- }
- else
- {
- while ( list ($key,$val) = each ($ReturnVar) )
- {
- unset($this->$val);
- }
- return;
- }
- }
-
- // Empty - clear all of them
-
- while ( list ( $key,$val) = each ($this->HANDLE) )
- {
- $KEY = $key;
- unset($this->$KEY);
- }
- return;
-
- } // end clear()
-
-// ************************************************************
-
- function clear_all ()
- {
- $this->clear();
- $this->clear_assign();
- $this->clear_define();
- $this->clear_tpl();
-
- return;
-
- } // end clear_all
-
-// ************************************************************
-
- function clear_tpl ($fileHandle = "")
- {
- if(empty($this->LOADED))
- {
- // Nothing loaded, nothing to clear
-
- return true;
- }
- if(empty($fileHandle))
- {
- // Clear ALL fileHandles
-
- while ( list ($key, $val) = each ($this->LOADED) )
- {
- unset($this->$key);
- }
- unset($this->LOADED);
-
- return true;
- }
- else
- {
- if( (gettype($fileHandle)) != "array")
- {
- if( (isset($this->$fileHandle)) || (!empty($this->$fileHandle)) )
- {
- unset($this->LOADED[$fileHandle]);
- unset($this->$fileHandle);
- return true;
- }
- }
- else
- {
- while ( list ($Key, $Val) = each ($fileHandle) )
- {
- unset($this->LOADED[$Key]);
- unset($this->$Key);
- }
- return true;
- }
- }
-
- return false;
-
- } // end clear_tpl
-
-// ************************************************************
-
- function clear_define ( $FileTag = "" )
- {
- if(empty($FileTag))
- {
- unset($this->FILELIST);
- return;
- }
-
- if( (gettype($Files)) != "array")
- {
- unset($this->FILELIST[$FileTag]);
- return;
- }
- else
- {
- while ( list ( $Tag, $Val) = each ($FileTag) )
- {
- unset($this->FILELIST[$Tag]);
- }
- return;
- }
- }
-
-// ************************************************************
-// Aliased function - used for compatibility with CGI::FastTemplate
- /* function clear_parse ()
- {
- $this->clear_assign();
- } */
-
-// ************************************************************
-// Clears all variables set by assign()
-
- function clear_assign ()
- {
- if(!(empty($this->PARSEVARS)))
- {
- while(list($Ref,$Val) = each ($this->PARSEVARS) )
- {
- unset($this->PARSEVARS["$Ref"]);
- }
- }
- }
-
-// ************************************************************
-
- function clear_href ($href)
- {
- if(!empty($href))
- {
- if( (gettype($href)) != "array")
- {
- unset($this->PARSEVARS[$href]);
- return;
- }
- else
- {
- while (list ($Ref,$val) = each ($href) )
- {
- unset($this->PARSEVARS[$Ref]);
- }
- return;
- }
- }
- else
- {
- // Empty - clear them all
-
- $this->clear_assign();
- }
- return;
- }
-
-// ************************************************************
-
- function assign ($tpl_array, $trailer="")
- {
- if(gettype($tpl_array) == "array")
- {
- while ( list ($key,$val) = each ($tpl_array) )
- {
- if (!(empty($key)))
- {
- // Empty values are allowed
- // Empty Keys are NOT
-
- $this->PARSEVARS["$key"] = $val;
- }
- }
- }
- else
- {
- // Empty values are allowed in non-array context now.
- if (!empty($tpl_array))
- {
- $this->PARSEVARS["$tpl_array"] = $trailer;
- }
- }
- }
-
-// ************************************************************
-// Return the value of an assigned variable.
-// Christian Brandel cbrandel@gmx.de
-
- function get_assigned($tpl_name = "")
- {
- if(empty($tpl_name)) { return false; }
- if(isset($this->PARSEVARS["$tpl_name"]))
- {
- return ($this->PARSEVARS["$tpl_name"]);
- }
- else
- {
- return false;
- }
- }
-
-// ************************************************************
-
- function error ($errorMsg, $die = 0)
- {
- $this->ERROR = $errorMsg;
- echo "ERROR: $this->ERROR <BR> \n";
- if ($die == 1)
- {
- exit;
- }
-
- return;
-
- } // end error()
-
-
-// ************************************************************
-
-
-
-// ************************************************************
-
-} // End class.FastTemplate.php3
-
-?>