jeje, ok, yo pense que php trabajaba directamente, estoy usando una clase de cristalab que maneja las plantillas, pero no doy aun:
la clase esta aqui:
Código PHP:
Ver originalclass Template{
private $tpl_file, $htmlTemplate;
private $htmlText;
private $fileReaded;
public $PATH = 'templates/';
private $EXT = '.tpl';
public function __construct()
{
}
public function setTemplate($templateFile)
{
$this->htmlText = "";
$this->tpl_file = $this->PATH . $templateFile . $this->EXT ;
$this->fileReaded = $this->fileData = @fopen($this->tpl_file, 'r'); if (!$this->fileReaded)
{
return false;
}
else
{
$this->htmlTemplate = fread($this->fileData, filesize($this->tpl_file)); $this->htmlTemplate = str_replace ("'", "\'", $this->htmlTemplate); }
return true;
}
public function setVars($vars)
{
if ($this->fileReaded)
{
$this->vars = $vars;
$this->htmlText = preg_replace('#\{([a-z0-9\-_]*?)\}#is', "' . $\\1 . '", $this->htmlTemplate); while (list($key, $val) = each($this->vars)) {
$$key = $val;
}
eval("\$this->htmlText = '$this->htmlText';"); while (list($key, $val) = each($this->vars)) {
}
$this->htmlText = str_replace ("\'", "'", $this->htmlText); return true;
}
else
{
//Error, you must set a template file
return false;
}
}
function show()
{
if ($this->fileReaded)
{
return ($this->htmlText!="")?$this->htmlText:$this->htmlTemplate;
}else{
//Error, you must set a template file
return "[ERROR]";
}
}
}
y asi lo uso:
Código PHP:
Ver original$contenido = new Template();
$contenido->PATH = "templates/";
$contenido->setTemplate("header");
$contenido->setVars(array("script_scrollable" => $str)); echo $contenido->show();
hice algo parecido al ejemplo que me diste, pero sale ERROR
Código PHP:
Ver original$contenido->setTemplate("index");
$installeres = new Template();
$installeres->setTemplate("inscripcion_talleres.tpl");
$contenido->setVars(array("content_bienvenido" => $bienvenido, "inscripcion_talleres" => $installeres->show())); echo $contenido->show();