Foros del Web » Programando para Internet » PHP »

Plantillas

Estas en el tema de Plantillas en el foro de PHP en Foros del Web. Hola, tengo un archivo index.tpl (platilla), que tiene varias áreas, las cuales he puesto cada una en una platilla diferente, como puedo incluir las plantillas ...
  #1 (permalink)  
Antiguo 25/08/2010, 10:53
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Plantillas

Hola, tengo un archivo index.tpl (platilla), que tiene varias áreas, las cuales he puesto cada una en una platilla diferente, como puedo incluir las plantillas de las áreas en la platilla principal que sería index.tpl?

Estuve leyendo y para reemplazar una variable se encierra el nombre de la variable entre llaves {nombre_variable}, pero como hago para meter las demas plantillas dentro de esta?
__________________
El aprendiz.
  #2 (permalink)  
Antiguo 25/08/2010, 11:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Plantillas

debes pensar en las plantillas como una variable mas... solo cargas la plantilla, y la asignas a una variable....

y esa variable es la que debes usar al momento de "incluir" el contenido de otras plantillas...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 25/08/2010, 11:27
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Respuesta: Plantillas

Es mi primara vez con las plantillas y no te entendi bien, podrias ponerme un ejemplo, algo referencial.
__________________
El aprendiz.
  #4 (permalink)  
Antiguo 25/08/2010, 11:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Plantillas

Código PHP:
$foo = new Template('index.tpl');
$bar = new Template('otra.tpl');

$foo->asign('bar'$bar->render());
echo 
$foo->render(); 
index.tpl
Código:
Hola mundo, aqui viene mi otra plantilla: {bar}
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 25/08/2010, 11:48
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Respuesta: Plantillas

de donde salen esos métodos? que usas?
__________________
El aprendiz.
  #6 (permalink)  
Antiguo 25/08/2010, 12:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Plantillas

Cita:
Iniciado por juandedios Ver Mensaje
de donde salen esos métodos? que usas?
obviamente es tan solo un ejemplo, algo imaginario...

Cita:
Iniciado por juandedios Ver Mensaje
Es mi primara vez con las plantillas y no te entendi bien, podrias ponerme un ejemplo, algo referencial.
y eso es... ¿como voy yo a saber que usas?

¡¡tampoco te voy a leer la mente!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 25/08/2010, 12:27
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
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.
  #8 (permalink)  
Antiguo 25/08/2010, 12:40
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Respuesta: Plantillas

ya me salio, el error estaba en $installeres->setTemplate("inscripcion_talleres.tpl"); tenia que poner sin la extension .tpl

Muchas gracias por tu ayuda, de verdad me sirvio mucho.
__________________
El aprendiz.
  #9 (permalink)  
Antiguo 25/08/2010, 13:41
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Respuesta: Plantillas

En el camino me surgió un nuevo problemas, ya pude hacer que las otras plantillas se vean en la plantilla principal, pero algunas de estas plantillas tienen sus respectivas variables, estas como las trabajo? de donde?
__________________
El aprendiz.
  #10 (permalink)  
Antiguo 25/08/2010, 13:48
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Respuesta: Plantillas

Ya lo resolvi, como antes era un error mio.
__________________
El aprendiz.

Etiquetas: plantillas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:00.