Tema: Plantillas
Ver Mensaje Individual
  #7 (permalink)  
Antiguo 25/08/2010, 12:27
juandedios
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años
Puntos: 8
Respuesta: Plantillas

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 original
  1. class Template{
  2.     private $tpl_file, $htmlTemplate;
  3.     private $htmlText;
  4.     private $fileReaded;
  5.     public $PATH = 'templates/';
  6.     private $EXT = '.tpl';
  7.    
  8.     public function __construct()
  9.     {
  10.        
  11.     }
  12.    
  13.     public function setTemplate($templateFile)
  14.     {
  15.         $this->htmlText = "";  
  16.         $this->tpl_file =  $this->PATH . $templateFile . $this->EXT ;
  17.         $this->fileReaded = $this->fileData = @fopen($this->tpl_file, 'r');
  18.         if (!$this->fileReaded)
  19.         {
  20.                 return false;
  21.         }
  22.         else
  23.         {
  24.             $this->htmlTemplate = fread($this->fileData, filesize($this->tpl_file));
  25.             $this->htmlTemplate = str_replace ("'", "\'", $this->htmlTemplate);
  26.             fclose($this->fileData);
  27.         }
  28.         return true;
  29.     }
  30.     public function setVars($vars)
  31.     {
  32.         if ($this->fileReaded)
  33.         {
  34.             $this->vars = $vars;
  35.             $this->htmlText = preg_replace('#\{([a-z0-9\-_]*?)\}#is', "' . $\\1 . '", $this->htmlTemplate);
  36.             reset ($this->vars);
  37.             while (list($key, $val) = each($this->vars))
  38.             {
  39.                     $$key = $val;
  40.             }
  41.             eval("\$this->htmlText = '$this->htmlText';");
  42.             reset ($this->vars);
  43.             while (list($key, $val) = each($this->vars))
  44.             {
  45.                     unset($$key);
  46.             }
  47.             $this->htmlText = str_replace ("\'", "'", $this->htmlText);
  48.             return true;
  49.         }
  50.         else
  51.         {
  52.             //Error, you must set a template file
  53.             return false;
  54.         }
  55.        
  56.     }
  57.     function show()
  58.     {
  59.         if ($this->fileReaded)
  60.         {
  61.             return ($this->htmlText!="")?$this->htmlText:$this->htmlTemplate;
  62.         }else{
  63.             //Error, you must set a template file
  64.             return "[ERROR]";
  65.         }
  66.     }
  67. }

y asi lo uso:
Código PHP:
Ver original
  1. $contenido = new Template();
  2. $contenido->PATH = "templates/";
  3. $contenido->setTemplate("header");
  4. $contenido->setVars(array("script_scrollable" => $str));
  5. echo $contenido->show();
hice algo parecido al ejemplo que me diste, pero sale ERROR
Código PHP:
Ver original
  1. $contenido->setTemplate("index");
  2. $installeres = new Template();
  3. $installeres->setTemplate("inscripcion_talleres.tpl");
  4. $contenido->setVars(array("content_bienvenido" => $bienvenido, "inscripcion_talleres" => $installeres->show()));
  5. echo $contenido->show();
__________________
El aprendiz.