En el post anterior ya tiraba algunas líneas sobre como separar el diseño del código php usando el motor de plantillas de phpBB. Voy a continuar en este artículo con eso, explicar como hacer iteraciones y dejo un ejemplo práctico para descargar.
Recuerdo en primer lugar como quedaría la página php:
<?php
include_once("template.php"); //Incluimos el motor de plantillas
$template = new template(); //Creamos objeto que almacenará las variables para mostrar
$prueba = "Esta es una prueba"; //Variable con una cadena
$template->assign_vars(array(
'VARIABLE1' => $prueba, //Asignamos las variables a los identificadores
));
$template->set_filenames(array(
'body' => 'prueba.html')); //Nombre del archivo a donde se volcará la información (la ruta ya está fijada en template.php)
$template->display('body'); //Generamos la salida
unset($template); //Limpiamos el objeto
?>
En el caso del código HTML sería:
<html><head><title></title></head><body>
<table>
<tr>
<td>
{VARIABLE1}
</td>
</tr>
</table>
</body></html>
El archivo template del include lo encuentran para descargar junto a la página php y el código html al final del artículo. Si desean cambiar la carpeta donde se guardan los archivos html, editen la línea que dice var $root = ‘template’;.
Creando iteraciones.
Las iteraciones o bucles son bloques de código que se repiten y van dejando en cada ciclo un valor. Este valor puede ser almacenado y puede, eventualmente, mostrarse en pantalla (en una tabla por ejemplo). El operador por excelencia asociado a esta operación es el for. Doy por descontado que saben usarlo; de lo contrario revisen el manual. La pregunta que vendría ahora es ¿cómo se relaciona esto con la salida HTML? Para responder los invito a analizar lo siguiente:
Código php:
for($i=0; $i<5; $i++)
{
$iteracion_out = array(
'I' => $i,
);
$template->assign_block_vars('iteracion', $iteracion_out);
}
Código HTML:
<table>
<!– BEGIN iteracion –>
<tr>
<td>
{iteracion.I}
</td>
</tr>
<!– END iteracion –>
</table>
El código php del ejemplo es muy sencillito: la variable $i va tomando valores naturales desde 0 hasta llegar a 4. Lo interesante es la matriz que se crea en cada vuelta y la función de la clase que se ejecuta. Esa función tiene como entradas el nombre del bucle (en ese caso “iteracion”) y el nombre de la matriz ($iteracion_out). En el código HTML encontramos el bucle identificado por <!– BEGIN nombre –> y <!– END nombre –>. Dentro, están las variables de la matriz nombradas de la forma {nombredelbucle.VARIABLE}.
Descargar: Ejemplo usando el motor de plantillas de phpBB
En el próximo artículo explico como usar los bloques (<!– BEGIN nombre –> y <!– END nombre –>) con condicionales y como anidarlos (unos dentro de otros).
Actualizo: Segunda parte -dicen que las segundas partes nunca fueron buenas… espero que esta sea la excepción!
-.



