Version: 1.1
Type: Class
Category: HTML
License: GNU General Public License
Description: Try this simple to use template manager to separate the logical part from the html part.
<?php
/*
Template generation class:
Author: Luis Tena O. <cookieme@usa.net>
Date: 4 - Marzo - 2002
Licence: GNU
Description:
This class allows you to separate the logic part from the html in a simple way.
Usage (Logic Part):
// Create the object...
$Tmpl = new Template('path/to/my/templates/');
//GET THE QUERY + RESULTS IN ONE VARIABLE
//Now we register the variable
$Tmpl->RegVar('<#NAME#>','Luis Tena');
$Tmpl->RegVar('<#AGE#>','22');
//Finally we print, email, save in a file the template output.
//In this case we print the output
print $Tmpl->SpitContent('template_file.html');
//OR just email the template output
$content = print $Tmpl->SpitContent('template_file.html');
email('to@mail.com','subject',$content,$headers);
Usage (HTML Part):
Define one type of template tags like <##> <!!> <%%> [] {} {##} and on
in this example Ill use <##>
<html>
<head>
<title>Welcome: <#NAME#></title>
</head>
<body>
Hi <#NAME#> you are <#AGE#> years old.
<br><br>
Thanx for visiting <#NAME#>
</body>
</html>
Thats it.
*/
class Template
{
var $ARRAYVALUES = array();
var $path2tmpl;
function Template($path){
$this->path2tmpl = $path;
}
function RegVar($key,$val){
$this->ARRAYVALUES[$key] = $val;
}
function SpitContent ($archivo){
$file = $this->path2tmpl.$archivo;
if(!@fopen($file,"r")){
print 'No se pudo encontrar el file del templete '.$file;
}else{
$template = file($file);
foreach($template AS $line){
foreach($this->ARRAYVALUES AS $key => $val){
if(eregi($key,$line)){
$line = eregi_replace("$key",$val,$line);
$data = $line;
}else{
$data = $line;
}
}
$contenido .= $data;
}
}
return $contenido;
}
}
?>