Ver Mensaje Individual
  #7 (permalink)  
Antiguo 15/02/2012, 13:30
chemajmb
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: MVC:¿ Como cargar las plantillas ?

Cita:
Iniciado por GatorV Ver Mensaje
Ah ya entendí, pues sí es buena práctica y no veo porque no lo puedas hacer, en lugar de hacer el include directo podrías cambiar tu método por algo así:
Código PHP:
Ver original
  1. function render($name, $vars) {
  2.         $path = __SITE_PATH . '/views' . '/' . $name . '.php';
  3.  
  4.         if (file_exists($path) == false)
  5.         {
  6.                 throw new Exception('Template not found in '. $path);
  7.                 return false;
  8.         }
  9.  
  10.         // Load variables
  11.         foreach ($vars as $key => $value)
  12.         {
  13.                 $$key = $value;
  14.         }
  15.  
  16.         ob_start();
  17.         include ($path);
  18.         return ob_get_clean();
  19. }

Entonces en tu controller podrías hacer:
Código PHP:
Ver original
  1. $productos = $this->registry->template->render('productos', $productos_array);
  2. echo $this->registry->template->render('index', $productos);

Saludos
Mas o menos lo he entendido pero no contemplas el caso de imprimir N plantillas de productos y meter sus N datos. Tu simplemente metes una plantilla y los datos del vector de $productos_array.

Si por ejemplo en mi controler hago un bucle llamando a la funcion render('productos', $productos_array[i]) para todos los posibles valores de productos_array, es una buena solucion, o este tipo de codigo no deberia de ir en el controlador, si no en la vista ?

Muchas gracias por las respuestas.