Foros del Web » Programando para Internet » PHP »

Uso de templates con html

Estas en el tema de Uso de templates con html en el foro de PHP en Foros del Web. Hola! Tengo una pequeña clase php que me permite usar plantillas de forma bastante facil, es esta. Código PHP: class  TemplateClass {          private  $_dir            ...
  #1 (permalink)  
Antiguo 10/10/2012, 19:30
Myl
 
Fecha de Ingreso: agosto-2011
Mensajes: 61
Antigüedad: 12 años, 8 meses
Puntos: 3
Uso de templates con html

Hola!

Tengo una pequeña clase php que me permite usar plantillas de forma bastante facil, es esta.

Código PHP:
class TemplateClass{
    
    private 
$_dir           'template/';
    private 
$_file_ext        '.tpl';
    private 
$_vars        = array(); 
    private 
$_delimiters     = array('{''}'); 
    
    public function 
Assign($name$value){
        if(!
array_key_exists($name$this->_vars))
            
$this->_vars[$name] = $value;
    }
    public function 
GetAssign($name){
        return 
$this->_vars{$name};
    }
    public function 
Template($file){ 
        if( 
$output = @file_get_contents($this->_dir.$file.$this->_file_ext)){
            foreach(
$this->_vars as $name => $value){
                
$output str_replace($this->_delimiters[0].$name.$this->_delimiters[1], $value$output); //recorremos todo el archivo para cambiar las palabras con los delimitadores a su respectiva traduccion
            
}
            return 
$output;
        }
        else 
            die(
"La plantilla no existe."); 
    }

La forma de uso es bastante simple:
Creo un objeto
$plantilla = new TemplateClass();

Asigno las variables
$plantilla->Asign("variable","valor a cambiar")

Y muestro
$plantilla->Template->("plantilla.tlp");

Todo esto me funciona perfectamente, el problema es cuando por ejemplo, tengo una plantilla para mostrar resultados de la bd y quiero que esta se repita tantas veces como resultados tenga.

Lo estoy haciendo de esta manera:

Código PHP:
$tlpHeader = new TemplateClass();
$tlpFooter = new TemplateClass();
$tlpCont = new TemplateClass();
$tlpPreg = new TemplateClass();

foreach (
$preDAO->getListaPregunta() as $preg){
     
// Esta es la plantilla donde le doy forma a los resultados
    
$tlpPreg->Assign("PREGUNTA",  $preg->getPregunta());
     
// Y aqui, le pasto la plantilla con la forma de los resultados y lo  muestro en la pagina
    
$tlpCont->Assign("PREGUNTAS"$tlpPreg->Template("pregunta"));
}

$tlpContenido = new TemplateClass();
$tlpContenido->Assign("HEADER"$tlpHeader->Template("header"));
$tlpContenido->Assign("CONTENIDO"$tlpCont->Template("content"));
$tlpContenido->Assign("FOOTER"$tlpFooter->Template("footer"));

echo 
$tlpContenido->Template("lista_preguntas");
?> 
Funciona en cierta medida... solo me muestra un resultado ¿Que debo hacer?.
  #2 (permalink)  
Antiguo 11/10/2012, 04:02
Myl
 
Fecha de Ingreso: agosto-2011
Mensajes: 61
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Uso de templates con html

Alguien que me ayude?

He estado buscando informacion y no logro solucionar el problema :(

Etiquetas: html, templates, variables
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 08:23.