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.