Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Datos persistentes en todas las vistas

Estas en el tema de Datos persistentes en todas las vistas en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, imaginemos que tenemos un sitio de comercio electrónico, en el que el menú de categorias de productos es persistente, por lo tanto es parte ...
  #1 (permalink)  
Antiguo 01/11/2011, 14:07
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 4
Datos persistentes en todas las vistas

Hola, imaginemos que tenemos un sitio de comercio electrónico, en el que el menú de categorias de productos es persistente, por lo tanto es parte del layout.

Esas mis mas categorías vienen de la base de datos, como puedo hacer para consultar esas categorias y mandarlas al layout sin tener que hacer una consulta en cada controlador?


Gracias.
__________________
Blog blog.desarrollandoideas.com

Twitter
Sígueme en Twitter
  #2 (permalink)  
Antiguo 01/11/2011, 14:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Datos persistentes en todas las vistas

Puedes usar un plugin para inyectar esas variables directamente al layout.

Saludos.
  #3 (permalink)  
Antiguo 01/11/2011, 15:10
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Datos persistentes en todas las vistas

Actualmente tengo un plugin que decide que layout utilizar, basicmaente hago esto:

Código PHP:
class Application_Plugin_Layout extends Zend_Controller_Plugin_Abstract
{
    public function 
preDispatch (Zend_Controller_Request_Abstract $request)
    {
        if(
$request->getModuleName()=='backend')
        {
            
$layout Zend_Layout::getMvcInstance();
            
$layout->setLayout('backend');
        }
        else
        {
            
$layout Zend_Layout::getMvcInstance();
            
$layout->setLayout('layout');
            
            
$qCategorias=Doctrine_Query::create()->from('Categorias');

                        
/*Yo suponia que con esto debería ser suficiente para enviar
                            variables*/
            
$this->view->categorias=$qCategorias->execute();
            
        }
                
    } 

__________________
Blog blog.desarrollandoideas.com

Twitter
Sígueme en Twitter
  #4 (permalink)  
Antiguo 01/11/2011, 15:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Datos persistentes en todas las vistas

No, si bien estas en lo correcto, tienes que asignarlas al layout, los plugins no tienen una propiedad view:
Código PHP:
Ver original
  1. $view = $layout->getView();
  2. $view->foo = 'bar';

Saludos.
  #5 (permalink)  
Antiguo 01/11/2011, 16:57
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Datos persistentes en todas las vistas

Cita:
Iniciado por GatorV Ver Mensaje
No, si bien estas en lo correcto, tienes que asignarlas al layout, los plugins no tienen una propiedad view:
Código PHP:
Ver original
  1. $view = $layout->getView();
  2. $view->foo = 'bar';

Saludos.
Muchas gracias GatorV, efectivamente, con esto quedó resuelto.
__________________
Blog blog.desarrollandoideas.com

Twitter
Sígueme en Twitter

Etiquetas: zend
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:41.