Foros del Web » Programando para Internet » PHP » Zend »

[Zend] FlashMessenger En Bootstrap

Estas en el tema de [Zend] FlashMessenger En Bootstrap en el foro de Zend en Foros del Web. Hola, como puedo llamar el helper FlashMessenger desde el bootstrap? Quiero obtener los mensajes en el bootstrap y asignarlo a una variable del view para ...

  #1 (permalink)  
Antiguo 25/03/2011, 01:16
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 2 meses
Puntos: 1
[Zend] FlashMessenger En Bootstrap

Hola, como puedo llamar el helper FlashMessenger desde el bootstrap?
Quiero obtener los mensajes en el bootstrap y asignarlo a una variable del view para no tener que instanciar en cada action.

Ya lo resolví de la siguiente manera:
Código PHP:
$view->flashMessenger Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger')->getMessages(); 
__________________
Le estaré agradecido por los siglos de los siglos a mi dios en PHP masterpuppet. Amen!

Última edición por CyberMauher; 25/03/2011 a las 01:24
  #2 (permalink)  
Antiguo 25/03/2011, 03:37
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: [Zend] FlashMessenger En Bootstrap

Buenas,

Si bien ya lo solucionaste, lo mejor seria un view helper, te dejo un par de links para que te hagas una idea.

http://www.zfsnippets.com/snippets/view/id/37
http://bolsadeideas.cl/zsamer/2008/0...action-helper/

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 25/03/2011, 08:46
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 14 años, 6 meses
Puntos: 6
Respuesta: [Zend] FlashMessenger En Bootstrap

Hola, ¿ne era que los FlashMessenger se asignan una vez y después se eliminan?.
¿No funcionan de esa manera?
  #4 (permalink)  
Antiguo 25/03/2011, 08:47
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: [Zend] FlashMessenger En Bootstrap

Sí, pero él te está indicando que crees un view helper para eso, aunque puedes usar un flashmessenger, pero lo que entiendo es que es mejor trabajar lo que quieres con un view helper.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 25/03/2011, 09:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

Yo lo que hago es mejor un controller plugin, que me inyecta automaticamente los mensajes en el view, y con un view helper los despliego, así me evito tener que pasarlos a la vista o comprobarlos, dejo el ejemplo:
Código PHP:
Ver original
  1. <?php
  2. //
  3. // +------------------------------------------------------------------------+
  4. // | Gecko Framework                                                        |
  5. // +------------------------------------------------------------------------+
  6. //
  7. require_once 'Zend/Controller/Plugin/Abstract.php';
  8.  
  9. /**
  10.  * Gecko_Controller_Plugin_FlashRenderer
  11.  *
  12.  * Zend Controller Plugin for setting the flash messages
  13.  *
  14.  * @package \Gecko\Controller\Plugin;
  15.  * @author Christopher Valderrama <[email protected]>
  16.  * @access public
  17.  **/
  18. class Gecko_Controller_Plugin_FlashRenderer
  19.     extends Zend_Controller_Plugin_Abstract {
  20.     /**
  21.      * Check if there are Messages and assing them to the view
  22.      *
  23.      * @param Zend_Controller_Request_Abstract $request
  24.      * @return void
  25.      */
  26.     public function preDispatch(Zend_Controller_Request_Abstract $request) {
  27.         $FlashMessenger = Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger');
  28.         $aMessages = $FlashMessenger->getMessages();
  29.         $ViewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
  30.         $ViewRenderer->initView();
  31.         $ViewRenderer->view->FlashMessages = $aMessages;
  32.     }  
  33. }

Código PHP:
Ver original
  1. <?php
  2. //
  3. // +------------------------------------------------------------------------+
  4. // | Gecko Framework                                                        |
  5. // +------------------------------------------------------------------------+
  6. //
  7. require_once 'Zend/View/Helper/Abstract.php';
  8.  
  9. /**
  10.  * Gecko_View_Helper_DisplayFlashMessages
  11.  *
  12.  * Zend View Helper Plugin to display Session Flash Messages
  13.  *
  14.  * @package \Gecko\View\Helper;
  15.  * @author Christopher Valderrama <[email protected]>
  16.  * @access public
  17.  **/
  18. class Gecko_View_Helper_DisplayFlashMessages extends Zend_View_Helper_Abstract
  19. {
  20.     public function displayFlashMessages()
  21.     {
  22.         $aMessages = $this->view->FlashMessages;
  23.         if (count($aMessages) > 0) {
  24.             $sMessageOutput = '<div id="flashM" title="Mensaje"><ul>';
  25.             foreach ($aMessages as $sMessage) {
  26.                 $sMessageOutput .= '<li>' . $sMessage . '</li>';
  27.             }
  28.             $sMessageOutput .= '</ul></div>';
  29.            
  30.             $jQuery = $this->view->jQuery();
  31.             $jQuery->enable()->uiEnable(); // enable jQuery Core Library
  32.            
  33.             $jqHandler = ZendX_JQuery_View_Helper_JQuery::getJQueryHandler();
  34.             $sJqueryScript = $jqHandler.'("#flashM").dialog({
  35.                 modal:true,
  36.                 buttons: {
  37.                     Ok: function() {
  38.                         '.$jqHandler.'(this).dialog("close");
  39.                     }
  40.                 }
  41.             });';
  42.            
  43.             $jQuery->addOnload($sJqueryScript);
  44.            
  45.             return $sMessageOutput;
  46.         }
  47.     }
  48. }

Para desplegarlos uso jQuery y creo un dialog con jQueryUI.

Saludos.
  #6 (permalink)  
Antiguo 25/03/2011, 09:48
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: [Zend] FlashMessenger En Bootstrap

Voy a aclarar mi post porque me parece que esta confundiendo mas que ayudando, la idea es similar a lo que puso GatorV, "atacar" el helper flashmessenger desde un view helper no reemplazar flashmessenger por un view helper.
Chequen los links.

@GatorV jQuery ? shame on you, Mootools FTW!!!

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 25/03/2011, 10:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

Me he acostumbrado bastante a jQuery jejeje, luego intentare ver un poco de Mootools a ver que tal, ya sería mi 3era librería que conozco bien al nucleo
  #8 (permalink)  
Antiguo 25/03/2011, 11:28
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: [Zend] FlashMessenger En Bootstrap

Entonces ¿la idea es usar un view helper para mostrar los datos divididos, unidos de acuerdo al formato que quiera, en vez de hacerlo directamente en el view?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 25/03/2011, 14:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

Así es, digo se puede usar cualquier implementación ya que los mensajes siempre los vas a tener disponibles en $this->FlashMessages ya que fueron inyectados por el controller plugin ahí, y los puedes mostrar en tu view directamente.

La idea del view helper es ayudarte a que sea más sencillo el desplegarlos, pero sirve igual hacer un foreach() en el view.

Saludos.
  #10 (permalink)  
Antiguo 16/06/2011, 03:39
 
Fecha de Ingreso: marzo-2005
Ubicación: Málaga
Mensajes: 115
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

He estado mirando tu código sobre lo del plugin de flash messenger y me parece fantástico.

Yo estaba queriendo hacer algo así para poner los metatags de seo en las páginas y me he fijado en tu código pero después de hacer el initView hago esto:

$ViewRenderer->view->headTitle("titulo");

y no me funciona.

Y ya que estamos, quiero lanzaros unas cuantas preguntas.

Cada vez que quiera tener algo inicializado, lo hago en el bootstrap a través de plugins?.

Otra pregunta es, la diferencia entre un view helper y un action helper, es que el view helper se va a utilizar para escribir en el view y el action sólo se va a utilizar para hacer de funciones, no?, entonces que diferencia hay entre tener un action helper y tener una clase propia y llamarla cuando la necesitemos?,

En el caso de los action helper, como se crea, registra y utiliza, se que son preguntas básicas, pero la documentación zend es liosa y a veces no me entero bien.

Gracias.
  #11 (permalink)  
Antiguo 16/06/2011, 05:20
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: [Zend] FlashMessenger En Bootstrap

Cita:
Yo estaba queriendo hacer algo así para poner los metatags de seo en las páginas y me he fijado en tu código pero después de hacer el initView hago esto:

$ViewRenderer->view->headTitle("titulo");
Tienes en el layout <?php echo $this->headTitle(); ?> ?

Cita:
Cada vez que quiera tener algo inicializado, lo hago en el bootstrap a través de plugins?.
Depende del caso, pero si necesitas el Request seguro es un plugin sino en el bootstrap podría ser suficiente.

Cita:
Otra pregunta es, la diferencia entre un view helper y un action helper, es que el view helper se va a utilizar para escribir en el view y el action sólo se va a utilizar para hacer de funciones, no?, entonces que diferencia hay entre tener un action helper y tener una clase propia y llamarla cuando la necesitemos?,

En el caso de los action helper, como se crea, registra y utiliza, se que son preguntas básicas, pero la documentación zend es liosa y a veces no me entero bien.
Las referencias a estas preguntas son muy claras en la doc o en el developerzone de Zend.

View Helpers
http://framework.zend.com/manual/en/...w.helpers.html
http://devzone.zend.com/article/3412...Zend-Framework

Action Helpers
http://framework.zend.com/manual/en/...onhelpers.html
http://devzone.zend.com/article/3350

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #12 (permalink)  
Antiguo 16/06/2011, 05:29
 
Fecha de Ingreso: marzo-2005
Ubicación: Málaga
Mensajes: 115
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

Hola Master

Si que tenía $this->headTitle puesto en el layout, pero no se porque no funcionaba. He pasado el $ViewRenderer como un parametro y ahora si que me funciona, no se porque es, seguramente he hecho algo mal y ahora lo habré modificado.

Respecto a lo de iniciarlizar cosas, es que hay tantas maneras, al final lo he hecho a través de el config.

Y lo de la diferencia entre action helper y view helper, creo que lo tengo claro, son casi lo mismo pero uno se utilizar en los views y otro en los controllers.

Lo que no entiendo muy bien es que diferencia habría entre llamar a una clase mia propia o una clase que extienda de un viewhelper, porque de todos modos tengo que cargarlas las dos, una con el help broker y la otra a mano.

Se que a veces mis preguntas son muy obvias, lo siento por eso, pero es que a veces me quedo con la duda por no preguntar.

Un saludo y muchas gracias.
  #13 (permalink)  
Antiguo 16/06/2011, 07:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

La idea de un Action Helper es esa, una clase de funciones de ayuda comunes que puedes reutilizar en tus controllers, y sí, una clase tuya que cargues en teoría es lo mismo, pero un action helper te ayuda en cosas como callbacks que son llamadas automaticamente por el FrontController en ciertos pasos, como init(), preDispatch() y postDispatch().

En tu clase que crees no podrías tener esos métodos y que sean llamados automaticamente por el FrontController, pero lo que sí podrías hacer es tener tu clase y que el helper sea un layer encima de tu clase.

Saludos.
  #14 (permalink)  
Antiguo 16/06/2011, 07:55
 
Fecha de Ingreso: marzo-2005
Ubicación: Málaga
Mensajes: 115
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

Gracias Gator.

Ahora por fin me ha quedado claro.
  #15 (permalink)  
Antiguo 18/07/2011, 07:33
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

hola gator una pregunta donde lo llamas a tu pluguins Gecko_Controller_Plugin_FlashRenderer yo lo llame en el bootstrap y como lo lllamas a tu Gecko_View_Helper_DisplayFlashMessages o donde los utilizas, no se como alimentar los mensajes o como lo hago para utilizar tus clases y hacer los mesajes de error o confirmacion gracias
  #16 (permalink)  
Antiguo 18/07/2011, 07:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

Así es, los registro en el bootstrap:
Código PHP:
Ver original
  1. protected function _initPlugins()
  2. {
  3.         $this->bootstrap('frontController');
  4.         $front = $this->getResource('frontController');
  5.  
  6.         $front->registerPlugin(new Gecko_Controller_Plugin_FlashRenderer());
  7. }

Y para usarlo solamente desde cualquier view hago un:
Código PHP:
Ver original
  1. <?php echo $this->displayFlashMessages()); ?>

Asegurate de tener los paths registrados para que escanee el directorio donde pongas el viewHelper.

Saludos.
  #17 (permalink)  
Antiguo 18/07/2011, 09:25
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

gracias gator por tu respuesta, tengo dudas en mi proyecto el mensaje yo lo creo asi
Código PHP:
 $flashMessenger $this->_helper->getHelper('FlashMessenger');
                    
$flashMessenger->addMessage('Mesanje de Error'); 
este mensaje esta en un controller, y en la vista esta en mi layout.phtml
lo uso como me dices
Código PHP:
echo $this->displayFlashMessages(); 
per me da el siguiente error:
Fatal error: Uncaught exception 'Zend_Loader_PluginLoader_Exception' with message 'Plugin by name 'DisplayFlashMessages' was not found in the registry; used paths: Zend_View_Helper_: Zend/View/Helper/;C:\xampp\htdocs\siscavj\application/views\helpers/;./views\helpers/' in C:\xampp\htdocs\zframework\library\Zend\Loader\Plu ginLoader.php:406 Stack trace: #0 C:\xampp\htdocs\zframework\library\Zend\View\Abstr act.php(1170): Zend_Loader_PluginLoader->load('DisplayFlashMes...') #1 C:\xampp\htdocs\zframework\library\Zend\View\Abstr act.php(610): Zend_View_Abstract->_getPlugin('helper', 'displayFlashMes...') #2 C:\xampp\htdocs\zframework\library\Zend\View\Abstr act.php(336): Zend_View_Abstract->getHelper('displayFlashMes...') #3 [internal function]: Zend_View_Abstract->__call('displayFlashMes...', Array) #4 C:\xampp\htdocs\siscavj\application\layouts\script s\layout.phtml(66): Zend_View->displayFlashMessages() #5 C:\xampp\htdocs\zframework\library\Zend\View.php(1 08): include('C:\xampp\htdocs...') #6 C:\xampp\htdocs\zframework\library\ in C:\xampp\htdocs\zframework\library\Zend\Loader\Plu ginLoader.php on line 406

y la clase DisplayFlashMessages esta en la siguiente direccion /appication/views/helpers/DisplayFlashMessages

tengo que añadir en el application.ini el path de mi view/helper??
como lo añado el path o registro el path de la clase DisplayFlashMessages gracias por las molestias
  #18 (permalink)  
Antiguo 18/07/2011, 09:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

Necesitas agregar el path del helper, depende de donde lo hagas puedes hacer algo así:
Código PHP:
Ver original
  1. protected function _initHelperPath()
  2. {
  3.         $this->bootstrap('view');
  4.         $view = $this->getResource('view');
  5.         $view->addHelperPath('Gecko/View/Helper/', 'Gecko_View_Helper');
  6. }

Saludos.
  #19 (permalink)  
Antiguo 18/07/2011, 10:26
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

gracias gator solucione el mensaje de error, ahora tengo mas problemnas no se si sera problema o me equivoco en algo, no me muestra ningun mensaje, en el layout.phtml
tengo lo siguiente para ver los mensajes :
echo $this->displayFlashMessages();

y en un controller lo cargo el mensaje de la siguiente

$flashMessenger = $this->_helper->getHelper('FlashMessenger');
$flashMessenger->addMessage('Mesanje de Error');


pero no me muestra ningun mensaje cual es mi error, disculpas por las molestias, gracias
  #20 (permalink)  
Antiguo 18/07/2011, 10:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

El plugin hace uso de jQuery para mostrar los mensajes, ¿tienes el jQuery habilitado en tu layout? También tienes que usar el plugin del controller para inyectar los mensajes en la vista, porque si no lo haces no los va a poder renderear.

Saludos.
  #21 (permalink)  
Antiguo 20/07/2011, 07:15
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

gracias gator, yo lo habilito en mi layout la libreria Jquery
<script type="text/javascript" src="<?php echo $this->baseUrl(); ?>/javascript/jquery/jquery-1.4.2.min.js"></script>

y el controller_plugin tambien lo tengo en el bootstap
pero no logro que me muestre mis mensajes de error o confirmacion.
que me falta
una consulta mas el jquery te refieres a la libreria de javascrip no? o los extras de zendX, tambien zendX lo copias a la ruta donde esta mi zend, que me fala no lo encuentro donde me estoy equivocando, gracias por la ayuda
  #22 (permalink)  
Antiguo 20/07/2011, 07:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

Así es me refiero a los ZendX, que son los helpers de jQuery, estan en la librería de extras, aunque puedes para probar hacer algo así sencillo:
Código PHP:
Ver original
  1. public function displayFlashMessages()
  2.     {
  3.         $aMessages = $this->view->FlashMessages;
  4.         if (count($aMessages) > 0) {
  5.             $sMessageOutput = '<ul>';
  6.             foreach ($aMessages as $sMessage) {
  7.                 $sMessageOutput .= '<li>' . $sMessage . '</li>';
  8.             }
  9.             $sMessageOutput .= '</ul>';
  10.            
  11.             return $sMessageOutput;
  12.         }
  13.     }

Eso te regresa solo una lista, y como te digo asegurate que tienes el plugin habilitado, ya que el plugin es el que inyecta los mensajes a la vista.

Saludos.
  #23 (permalink)  
Antiguo 20/07/2011, 09:55
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

gracias gator lo probe y no me muestra nada, haciendo:
Código PHP:
$aMessages $this->view->Mensajes;
var_dump($aMessages
en la clase DisplayFlashMessages no me muestra nada, entonces creo que no se esta inyectando los mensajes, pero yo los inyecto asi:
Código PHP:
 $flashMessenger $this->_helper->getHelper('FlashMessenger');
                   
$flashMessenger->addMessage('Mensaje inyectado'); 
pero hacieno var_dump en el plugin si se muestra el mensaje inyectado
Código PHP:
$FlashMessenger Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger');
        
var_dump($FlashMessenger); 
pero al parecer no esta guardando en el view el mensaje para que lo puede yo manipular en el DisplayFlashMessages

Código PHP:
$ViewRenderer Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
        
$ViewRenderer->initView();
        
$ViewRenderer->view->Mensajes $aMessages;
var_dump($ViewRenderer); 
porque no se esta guardando o que es error o problema que estoy cometiendo
  #24 (permalink)  
Antiguo 20/07/2011, 09:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

¿Ese código lo tienes en el preDispatch del plugin?
  #25 (permalink)  
Antiguo 20/07/2011, 10:01
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

este es el preDispatch del Plugin:
Código PHP:
 public function preDispatch(Zend_Controller_Request_Abstract $request) {
        
$FlashMessenger Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger');
        
//var_dump($FlashMessenger);
        
$aMessages $FlashMessenger->getMessages();
        
//var_dump($aMessages);
        
$ViewRenderer Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
        
$ViewRenderer->initView();
        
$ViewRenderer->view->Mensajes $aMessages;
        
//var_dump($ViewRenderer);
    

  #26 (permalink)  
Antiguo 20/07/2011, 10:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

es muy raro, tal cual lo tengo así en mis proyectos y no me causa ningún problema, el plugin hace la inyeccion de la variable en la vista y la puedo ver sin problemas...
  #27 (permalink)  
Antiguo 20/07/2011, 10:22
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

en el plugin al hacer var_dump se ve el mensaje pero en la clase DisplayFlashMessenger.php
no se ve el mensaje no muestra nada al hacer un var_dump es como si en la vista no se guarda el mensaje, si todo esta bien en mi pluguins no se cual mas puede ser el error para no poder ver el mensaje en le DisplayFlashMessenger
no entiendo y no se como solucionar ya este problema

otra pregunta mas porque no me reconoce esta linea de codigo
Código PHP:
$jQuery $this->view->jQuery(); 
si ya lo copie toda la carpeta zendx a la libreria de zend o como habilito esto gracias
  #28 (permalink)  
Antiguo 20/07/2011, 10:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

Si no se ve en DisplayFlashMessages, es porque no lo esta inyectando correctamente en la vista, es posible que estes "pisando" la vista en algún otro plugin, tienes otro plugin aparte de este?

Tienes que agregarlo al path de tu view:
Código:
resources.view.helperPath.ZendX_JQuery_View_Helper = "ZendX/JQuery/View/Helper/"
Saludos.
  #29 (permalink)  
Antiguo 20/07/2011, 16:27
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

si tengo otro dos plugins, uno para los acl y otro para asignar layout por modulo automaticamente. te lo subo los dos pluguins que tengo.

par los acl:
Código PHP:
class Plugin_VerificarAcceso extends Zend_Controller_Plugin_Abstract{
    private 
$_acl null;

    public function 
__construct(Zend_Acl $acl) {
        
$this->_acl $acl;
    }

    public function 
preDispatch(Zend_Controller_Request_Abstract $request) {
        
$module strtoupper($request->getModuleName());
        
$controller strtoupper($request->getControllerName());
        
$action strtoupper($request->getActionName());
        
$resource=$module.':'.$controller;
        
       
// Zend_Debug::dump(Zend_Auth::getInstance()->getStorage()->read());

        
if (Zend_Auth::getInstance()->hasIdentity()) {
            
$cod Zend_Auth::getInstance()->getStorage()->read()->COD_TIPOEMPLEADO;
            
$model_tipo_empleado = new administrador_Model_DbTable_Tipoempleado();
            
$tipo_emp $model_tipo_empleado->getTipoEmpleado($cod);
            
$rol $tipo_emp[NOM_TIPO_EMP];
            
        } else {
            
$rol='default';
        }
       

        
//Zend_Debug::dump($this->_acl->isAllowed($rol, $resource, $action));
        
if(!$this->_acl->has($resource)  || !$this->_acl->isAllowed($rol$resource$action)){
            
$request->setModuleName('default');
            
$request->setControllerName('Autentificacion');
            
$request->setActionName('login');



        }
    }
    

para los layouts por modulo:
Código PHP:
<?php

class Plugin_VariosLayout extends Zend_Controller_plugin_Abstract {

    public function 
preDispatch(Zend_Controller_Request_Abstract $request) {
        
$config Zend_Controller_Front::getInstance()->getParam('bootstrap')->getOptions();

        
$moduleName $request->getModuleName();

        if (isset(
$config[$moduleName]['resources']['layout']['layout'])) {


            
$layoutScript $config[$moduleName]['resources']['layout']['layout'];
            
Zend_Layout::getMvcInstance()->setLayout($layoutScript);
            
//print_r($layoutScript);
        
}

        if (isset(
$config[$moduleName]['resources']['layout']['layoutPath'])) {

            
$layoutPath $config[$moduleName]['resources']['layout']['layoutPath'];
            
$moduleDir Zend_Controller_Front::getInstance()->getModuleDirectory();

            
Zend_Layout::getMvcInstance()->setLayoutPath($layoutPath);
        }
    }

}
esos son los dos pluguins mas que tengo, por favor revisamelo donde se esta pisando, gracias
  #30 (permalink)  
Antiguo 20/07/2011, 16:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

Podrías poner tu bootstrap?

Etiquetas: frameworks-y-php-orientado-a-objetos
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 13:02.