Ver Mensaje Individual
  #17 (permalink)  
Antiguo 17/02/2012, 04:28
chemajmb
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: MVC:¿ Como cargar las plantillas ?

Yo tenia pensado hacerlo tal que asi, pero en verdad quiero aprender a hacerlo bien. Si como yo lo hago tiene algun pero, me gustaria saber la manera comun y elegante de hacerlo.
Como lo iba a hacer yo:
Código HTML:
...
<body>
...
<div class="personas">
{loc_personas}
</div>
...
</body>
</html> 
Teniendo un metodo para colocar N plantillas, pasandole la plantilla que se tiene que repetir, los datos que van en esa plantilla, y la localizacion de donde van esas plantillas.
La llamada seria:
Código PHP:
vista->coloca_N_plantillas('plantilla_personas','loc_personas',$personas
La plantilla plantilla_personas que seria un archivo de tal manera:
Código HTML:
<div class="persona">
<span>{nombre_persona} tiene {edad_persona} años.</span>
</div> 
El metodo seria:
Código PHP:
function coloca_N_plantillas($nombre_plantilla,$localizacion,$multi_datos
{
    foreach ( 
$multi_datos each $datos 
    {
        
// simplemente coloca una plantilla
        
$this->coloca_plantilla ($nombre_plantilla,$localizacion); 
        
// reemplaza las localizaciones {key} con el valor value
        // mirar el metodo abajo, para entender mejor
        
$this->coloca_datos(  $datos );
    }

Definicion de los metodos utilizados, que ya antes habia comentado en este hilo, pero que pongo aqui para que quede mas claro.
Código PHP:
protected function coloca_plantilla$nombre_plantilla$localizacion_html ) {
    if ( 
$nombre_plantilla && $localizacion_html ){
        
$plantilla $this->dame_plantilla$nombre_plantilla );
        
$this->html str_replace('{'.$localizacion_html.'}'$plantilla$this->html);
    }
}
    
protected function 
coloca_datos$datos) {
    if ( 
$datos )
        foreach ( 
$datos as $clave => $valor )
            
$this->html str_replace('{'.$clave.'}'$valor$this->html);

No se como hacerlo y empiezo a estar un poco desesperado. QQ

Y no sera por que no le estoy dando vueltas.

La cosa es que yo tengo en la base de datos las Categorias, cada categoria con 0, 1 o mas subcategorias, cada subcategoria con 0, 1 o mas productos.

No se ni que tipo de datos pasar a la vista para que imprima el navegador con sus categorias, subcategorias y productos. Ni como imprimirlo realmente. Estoy ya desesperado por que llevo 3 dias y no avanzo. Y por ahora llevaba buen ritmo hasta que me he topado con esto.

Y me raya el hecho de pensar que no debe de ser tan complicado, pues en otras webs se pueden dar casos mucho mas complicados con tipos de datos mucho mas enrevesados, y sin embargo ahi estan funcionando.

Espero ayuda desesperadamente.

Última edición por chemajmb; 17/02/2012 a las 05:42