Separar diseño de código en php usando el motor de plantillas de phpBB

Marzo 11th, 2008

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! :P-.

  1. 6 respuestas a “Separar diseño de código en php usando el motor de plantillas de phpBB”

  2. Por --==[Sing88]==-- el Mar 12, 2008 | Responder

    buen articulo

  3. Por enzo el Nov 14, 2008 | Responder

    muy buena articulo. justo lo q estaba buscando.

  4. Por martin el Nov 14, 2008 | Responder

    Me alegra que te haya servido Enzo :)

  1. 3 Trackback(s)

  2. Mar 11, 2008: martin.com.uy » Artículos » Programar un fotolog desde cero.
  3. Mar 14, 2008: martin.com.uy » Artículos » Separar diseño de código en php usando el motor de plantillas de phpBB (II)
  4. Abr 11, 2008: martin.com.uy » Artículos » ¿Cómo agregar el Estado del Tiempo a tu sitio web?

Postear un comentario