Escribí este script, es un sistema de plantilla bastante sencillo, utiliza una plantilla HTML en vez de PHP para separar la programación de la maquetación.
Utilice una colección para simular una demostración, pero estoy seguro de que sera fácil adaptarlo a su proyecto. ;D
Nota: en la plantilla se usan {MAYÚSCULAS} para evitar colisiones.
plantilla_boleta.html
Código HTML:
Ver original<!-- Fila {ID} -->
<div id="fila-{ID}" class="fila"> {CONTENIDO}
<!-- /Fila {ID} -->
boletas.php
Código PHP:
Ver original<?php
/**
* Sistema basico de plantillas
*
*/
function plantilla_boleta($variable){
// Este paso lo hacemos para convertir en mayusculas las keys de las variables
// para que coincidan con las variables de la plantilla.
// Cargamos nuestra plantilla
// Reemplazamos las variables
foreach($variable as $var=>$value){
$plantilla = str_replace('{'.$var.'}', $value, $plantilla); }
// Regresarmos la plantilla con las variables asignadas
// TODO: no entiendo este bug, si no funciona reemplazar por
/* eval('?>'.$plantilla.'<?') */
return eval('?>'.$plantilla); }
// Coleccion de valores para simular una consulta a la base de datos
// TODO: reemplazar por una consulta a la base de datos.
$coleccion[0]['id'] = 1;
$coleccion[0]['titulo'] = 'boleta 1';
$coleccion[0]['contenido'] = 'contenido 1';
$coleccion[1]['id'] = 2;
$coleccion[1]['titulo'] = 'boleta 2';
$coleccion[1]['contenido'] = 'contenido 2';
$coleccion[2]['id'] = 3;
$coleccion[2]['titulo'] = 'boleta 3';
$coleccion[2]['contenido'] = 'contenido 3';
// Recogemos los valores para maquetarlos
foreach ($coleccion as $boleta){
print plantilla_boleta($boleta);
}
?>