Ver Mensaje Individual
  #9 (permalink)  
Antiguo 11/02/2011, 16:13
Avatar de jonasanx
jonasanx
 
Fecha de Ingreso: enero-2011
Ubicación: La Via Lactea, Mexico, Mexico, Mexico
Mensajes: 134
Antigüedad: 13 años, 10 meses
Puntos: 4
Respuesta: Include de misma pagina varias veces pero con datos diferente.

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
  1. <!--  Fila {ID} -->
  2. <div id="fila-{ID}" class="fila">
  3.     <h3>{TITULO}</h3>
  4.     <div class="content">
  5.             {CONTENIDO}
  6.     </div>
  7. </div>
  8. <!--  /Fila {ID} -->

boletas.php
Código PHP:
Ver original
  1. <?php
  2. /**
  3.  * Sistema basico de plantillas
  4.  *
  5.  */
  6. function plantilla_boleta($variable){
  7.    
  8.     // Este paso lo hacemos para convertir en mayusculas las keys de las variables
  9.     // para que coincidan con las variables de la plantilla.   
  10.     $variable = array_change_key_case($variable, CASE_UPPER);
  11.    
  12.     // Cargamos nuestra plantilla
  13.     $plantilla = file_get_contents('plantilla_boleta.html');
  14.    
  15.     // Reemplazamos las variables
  16.     foreach($variable as $var=>$value){
  17.         $plantilla = str_replace('{'.$var.'}', $value, $plantilla);
  18.     }
  19.    
  20.     // Regresarmos la plantilla con las variables asignadas
  21.        
  22.     // TODO: no entiendo este bug, si no funciona reemplazar por
  23.             /* eval('?>'.$plantilla.'<?') */
  24.     return eval('?>'.$plantilla);
  25. }
  26.  
  27. // Coleccion de valores para simular una consulta a la base de datos
  28. // TODO: reemplazar por una consulta a la base de datos.
  29.  
  30. $coleccion[0]['id'] = 1;
  31. $coleccion[0]['titulo'] = 'boleta 1';
  32. $coleccion[0]['contenido'] = 'contenido 1';
  33.  
  34. $coleccion[1]['id'] = 2;
  35. $coleccion[1]['titulo'] = 'boleta 2';
  36. $coleccion[1]['contenido'] = 'contenido 2';
  37.  
  38. $coleccion[2]['id'] = 3;
  39. $coleccion[2]['titulo'] = 'boleta 3';
  40. $coleccion[2]['contenido'] = 'contenido 3';
  41.  
  42.  
  43. // Recogemos los valores para maquetarlos
  44. foreach ($coleccion as $boleta){
  45.     print plantilla_boleta($boleta);   
  46. }
  47.  
  48. ?>

Última edición por jonasanx; 11/02/2011 a las 16:19