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. claro este es mi bootStrap: Código PHP: <?php class  Bootstrap  extends  Zend_Application_Bootstrap_Bootstrap  {     protected function  _initAutoLoad () {          $modelLoader  = new  Zend_Application_Module_Autoloader (array(                      'namespace'  =>  '' ...

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

claro este es mi bootStrap:
Código PHP:
<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {

    protected function 
_initAutoLoad() {
        
$modelLoader = new Zend_Application_Module_Autoloader(array(
                    
'namespace' => '',
                    
'basePath' => APPLICATION_PATH ''));


        
$this->_acl = new Model_LibreriaAcl();
        
$fc Zend_Controller_Front::getInstance();
        
$fc->registerPlugin(new Plugin_VerificarAcceso($this->_acl));

        
//$fc->registerPlugin(new Plugin_FlashRenderer());
        
return $modelLoader;
    }

    protected function 
_initPlugins() {


        
$this->bootstrap('frontController');
        
$plugin = new Plugin_VariosLayout();
        
$this->frontController->registerPlugin($plugin);

        
$this->bootstrap('frontController');
        
$front $this->getResource('frontController');
        
$front->registerPlugin(new Plugin_FlashRenderer());
        
    }

    function 
_initViewHelpers() {

      
        
$this->bootstrap('view');
        
$view $this->getResource('view');
        
$view->addHelperPath('Carlos/View/Helper/''Carlos_View_Helper');
    }

}
una cosa mas por favor Gator ya lo añadi la linea que me dijiste anteriormente lo puse en la application.ini

resources.view.helperPath.ZendX_JQuery_View_Helper = "ZendX/JQuery/View/Helper/"

pero me sigue dando error:

Fatal error: Call to a member function jQuery() on a non-object in C:\xampp\htdocs\siscavj1\library\carlos\view\helpe r\DisplayFlashMessages.php on line 71

y esa linea corresponde a lo siguiente:

Código PHP:
$jQuery $this->view->jQuery(); 
que ma falta o que esta mal, ZendX esta el la direccion donde esta Zend osea library/ZendX, gracias
  #32 (permalink)  
Antiguo 22/07/2011, 06:56
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

como habilito el JQuery, ya lo añadi la linea en el applicacion.ini
resources.view.helperPath.ZendX_JQuery_View_Helper = "ZendX/JQuery/View/Helper/"
pero meda sigue el error

Fatal error: Call to a member function jQuery() on a non-object in C:\xampp\htdocs\siscavj1\library\carlos\view\helpe r\DisplayFlashMessages.php on line 71

y esa linea es la siguiente
Código PHP:
$jQuery $this->view->jQuery(); 
com puedo hacer por favor ayuda
  #33 (permalink)  
Antiguo 22/07/2011, 07:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

¿Ese error te sale porque $this->view es nulo, estas extendiendo de Zend_View_Helper_Abstract?
  #34 (permalink)  
Antiguo 22/07/2011, 08:01
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

como tuviera que añadir entonces zendX?? gracias
  #35 (permalink)  
Antiguo 22/07/2011, 09:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

El ZendX esta bien agregado, prueba en cualquier view de tu aplicación hacer un $this->jQuery()->enable(); y ve si te funciona.

El problema en el helper es que no estas extendiendo de Zend_View_Helper_Abstract para que tengas el view inyectado.

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

gracias Gator cometia un error, no estuve extendiendo la clase DisplayFlashMessenger a extends Zend_View_Helper_Abstract, ya solucione el problema me muestra el mensaje.
prove tambien en una vista $this->jQuery()->enable();
Qué es lo que tiene que mostrar, no muestra nada.
tengo dudas:
1. porque no me muestra el dialogo hecho con Jquery
Código PHP:
        $jQuery $this->view->jQuery();
       
            
$jQuery->enable()->uiEnable(); // enable jQuery Core Library

            
$jqHandler ZendX_JQuery_View_Helper_JQuery::getJQueryHandler();
            
$sJqueryScript $jqHandler.'("#flashM").dialog({
                modal:true,
                buttons: {
                    Ok: function() {
                        '
.$jqHandler.'(this).dialog("close");
                    }
                }
            });'

no muestra nada que me falta que esta mal o que ovie, necesito que mi mensaje tenga los botones porque eso es lo que deberia mostra no?.
2.
porque no muestra los mensaje a la primera, muestra en la segunda ocurrencia o en el segunda entrada, ¿como se hace para mostrar a la primera?
3. como puedo hacer para que el mensaje se muestre antes de hacer un redirect() para que lo muestre antes de enviar a otro lado.
por favor espero que me ayudes, gracias saludos
  #37 (permalink)  
Antiguo 25/07/2011, 07:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

Si no te los muestra en un dialog es porque estas cargando mal los mensajes en tu <div>, revisa tu HTML generado y verifica que tengas un <div id="flashM"> donde esten los mensajes.

El comportamiento nativo de FlashMessenger es ese, que tu puedas "guardar" un mensaje para hacer un redirect. Si lo que quieres es mostrar un mensaje en tu request actual solo asignalo a la vista, ya que entonces no necesitas el FlashMessenger, porque para eso funciona.

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

En el Html generado el <div id="flashM"> mensaje </div> pero no me muetra el dialogo de JQuery.
  #39 (permalink)  
Antiguo 26/07/2011, 09:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

y tienes en el <head> de tu layout el <?php echo $this->jQuery(); ?> para imprimir todo el código relacionado del jQuery? También tienes agregar el CSS del jQueryUI en tu <head>.

Saludos.
  #40 (permalink)  
Antiguo 04/08/2011, 14:42
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

sigo con este problema.
si tengo añadido en el head del layout
Código PHP:
<?php echo $this->jQuery(); ?>
pero no me muestra el dialogo no se que mas puedo hacer,
una consulta CSS del jQueryUI es de ZendX Jquery o es algo que yo lo tengo que hacer para que me muestre el dialogo, gracias saludos
  #41 (permalink)  
Antiguo 04/08/2011, 15:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

Tienes que descargar al menos un theme de JqueryUI y tener linkeado el CSS en el Head, realmente no se porque no te funciona ya que son los pasos como lo tengo yo instalado y no hay ningún problema.

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

hola Gator gracias por la respuesta, pero aun no me sale el dialogo con JQuery, pero me muestra el mensaje.
en el head tengo añadido lo siguiente como me dijiste
Código PHP:
<?php echo $this->jQuery(); ?>      
        <script type="text/javascript" src="<?php echo $this->baseUrl(); ?>/javascript/jquery/jquery-1.4.2.min.js"></script>
        <script type="text/javascript" src="<?php echo $this->baseUrl(); ?>/javascript/jquery/jquery-1.4.2.js"></script>
        <script type="text/javascript" src="<?php echo $this->baseUrl(); ?>/javascript/jquery/jquery-ui-1.8.15.custom.min.js"></script>
que esta mal ya intente de todo no se como hacer mas o darle solución no se si me puedes mandar tu codigo por favor, muchas gracias, disculpa si ya moleste mucho
  #43 (permalink)  
Antiguo 09/08/2011, 09:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

Esto es lo que yo hago, en mi bootstrap:
Código PHP:
Ver original
  1. protected function _initJQuery()
  2. {
  3.     $this->bootstrap('view');
  4.     $View = $this->getResource('view');
  5.     $View->addHelperPath('ZendX/JQuery/View/Helper/', 'ZendX_JQuery_View_Helper');
  6.    
  7.     $View->jQuery()
  8.         ->setLocalPath('/js/jquery-1.3.2.min.js')
  9.         ->setUiLocalPath('/js/jquery-ui-1.7.1.custom.min.js')
  10.         ->addStylesheet('/css/theme/jquery-ui-1.7.1.custom.css');
  11. }

En mi Layout:
Código PHP:
Ver original
  1. <?php echo $this->jQuery(); ?>

Con eso deberia de funcionar sin problemas.

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

nada Gator no me muestra el dialogo
tengo unas preguntas
1. que diferencia hay en direccionar los js y los css en el bootstrap que en el layout
en mi caso yo lo tengo en el head de mi layout y en tu caso lo tienes en el bootstrap.
2. la diferecia de addHelperPah en el Layoyt que en el application.ini. yo lo tengo en el application.ini y en tu caso lo tienes en el bootstrap.
el mio es asi:

resources.view.helperPath.ZendX_JQuery_View_Helper = "ZendX/JQuery/View/Helper/"


por favor aclareme mis dudas, aun no me muestra, gracias
  #45 (permalink)  
Antiguo 09/08/2011, 10:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

La única diferencia es que si lo pones en tu layout, siempre van a estar las librerías cargadas, en cambio cuando las pones por medio del helper, solamente se cargan cuando haces un $this->jQuery()->enable()->uiEnable().

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

entonces lo que yo pongo esta bien pero porque no me muestra el Dialogo con Jquery, la verdad no se que esta mal o que me falta, gracias gator por la colaboracion
  #47 (permalink)  
Antiguo 10/08/2011, 08:51
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

Y se esta cargando correctamente jQuery ?, compruébalo con firebug.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #48 (permalink)  
Antiguo 10/08/2011, 10:26
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

revisando con firebug no nuestra nada de Jquery al parecer no esta cargando a la vista el Jquery ()
Código PHP:
$jQuery $this->view->jQuery();
            
$jQuery->enable()->uiEnable(); 
y en el head de mi layout es asi
Código PHP:
<?php echo $this->jQuery();?>
pero no me muestra nada de Jquery
  #49 (permalink)  
Antiguo 10/08/2011, 11:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

¿No lo estabas hardcodeando en el layout?
  #50 (permalink)  
Antiguo 10/08/2011, 14:28
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

te refieres a las llamadas de los jqueryUi .js y los cs si los tengo en el head de mi layout

Código PHP:
<script type="text/javascript" src="<?php echo $this->baseUrl(); ?>/javascript/jquery/jquery-1.4.2.min.js"></script>
        <script type="text/javascript" src="<?php echo $this->baseUrl(); ?>/javascript/jquery/jquery-1.4.2.js"></script>
        <script type="text/javascript" src="<?php echo $this->baseUrl(); ?>/javascript/jquery/jquery-ui-1.8.15.custom.min.js"></script>
pero al ver los errores o fallas co firebug no muestra el Jquery
no se la verdad que mas hacer
  #51 (permalink)  
Antiguo 10/08/2011, 14:35
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

Comprueba en la pestaña Script de firebug que esta cargado jquery y ten en cuenta que estas cargando la librería dos veces, según el código que pegaste, no se si es un typo o efectivamente lo estas cargando dos veces.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #52 (permalink)  
Antiguo 11/08/2011, 07:59
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

gracias por la respueta, verifique si esta cargando Jquery en la ventana del Script del firebug, si esta cargarndo lo que es jquery-1.4.2.js y jquery-ui-1.8.15.custom.min.js, pero aun no muestra el dialogo gracias
  #53 (permalink)  
Antiguo 11/08/2011, 08:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

Para ver si el problema es de jQuery o de otra cosa prueba hacer un test:
Código HTML:
Ver original
  1. <div id="dialog" title="Prueba">Prueba</div>
  2. <script type="text/javascript">
  3.       jQuery('#dialog').dialog();

Si te sale el dialogo es que esta bien y el problema es como lo despliegas, si no te sale el dialogo tienes un problema en como estas cargando el jQuery/jQueryUI.

Saludos.
  #54 (permalink)  
Antiguo 11/08/2011, 09:32
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

me sale el dialogo de Jquery, entonces el problema seria como lo despliego, la clase que cargo el dialogo es el siguinete
Código PHP:
require_once 'Zend/View/Helper/Abstract.php';

class 
Carlos_View_Helper_DisplayFlashMessages  extends Zend_View_Helper_Abstract {
    
//put your code here

    
public function displayFlashMessages()
    {
        
$aMessages $this->view->Messages;
        if (
count($aMessages) > 0) {
            
$sMessageOutput '<div id="flashM" title="Mensaje"><ul>';
            foreach (
$aMessages as $sMessage) {
                
$sMessageOutput .= '<li>' $sMessage '</li>';
            }
            
$sMessageOutput .= '</ul></div>';
            
            
$jQuery $this->view->jQuery();
            
$jQuery->enable()->uiEnable(); // enable jQuery Core Library
            
           
$jqHandler ZendX_JQuery_View_Helper_JQuery::getJQueryHandler();
            
$sJqueryScript $jqHandler.'("#flashM").dialog({
                modal:true,
                buttons: {
                    Ok: function() {
                        '
.$jqHandler.'(this).dialog("close");
                    }
                }
            });'
;
            
            
$jQuery->addOnload($sJqueryScript);
            
            return 
$sMessageOutput;
        
        }

    }

ese sector estari mal me dices no??
y como seria la forma correcta de desplegar.
lo llamo es en el layout
echo $this->displayFlashMessages();
  #55 (permalink)  
Antiguo 11/08/2011, 10:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

Revisa el código fuente de tu HTML, si ves el <div id="flashM"> o no?, si no esta en el código fuente es porque no se esta cumpliendo la primer condición:

Código PHP:
Ver original
  1. $aMessages = $this->view->Messages;
  2.         if (count($aMessages) > 0) {

Es decir no haz asignado a la vista los mensajes que quieres desplegar.

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

si muestra en mi codigo Html el <div id='flashM'></>,


Código HTML:
<div id="flashM" title="Mensaje"><ul><li>Mensaje al otro inyectado</li></ul></div> 
Pero en la vista solo muetra el mensaje en la lista y no asi en el dialogo de Jquery.
¿porque no esta mostrando ahora el dialogo?, si probando con un script muestra un dialogo.

Pero si ago un script pidiendo el mensaje id=flashM en el layout:

Código HTML:
<script type="text/javascript">
   
                            jQuery('#flashM').dialog({
                                modal:true,
                                buttons: {
                                    Ok: function() {
                                        (this).dialog("close");
                                    }
                                }
                            });
   
                        </script> 
muestra mi mensaje inyectado a la vista.
pero porque no muestra el mensaje si se esta cargarndo al jquery en la clase DisplayFlashMessage, o no esta cargando bien en la clase:

Código PHP:
$jQuery $this->view->jQuery();
            
$jQuery->enable()->uiEnable(); // enable jQuery Core Library
            
           
$jqHandler ZendX_JQuery_View_Helper_JQuery::getJQueryHandler();
            
$sJqueryScript $jqHandler.'("#flashM").dialog({
                modal:true,
                buttons: {
                    Ok: function() {
                        '
.$jqHandler.'(this).dialog("close");
                    }
                }
            });'
;
            
            
$jQuery->addOnload($sJqueryScript); 
por favor que esta mal gracias

Última edición por jcq_quiroz; 12/08/2011 a las 07:43
  #57 (permalink)  
Antiguo 12/08/2011, 07:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

Es muy raro, porque con eso debería de funcionar, ya que eso registra en el ready de jquery el dialogo, sí tienes <?php echo $this->jQuery();?> en tu layout en el <head></head>? Cuando ves el HTML ves el <script> con el document ready?
  #58 (permalink)  
Antiguo 12/08/2011, 09:52
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

si tengo añadido en el head <?php echo $this->jQuery();?> pero no entiendo muy bien si veo el script con el document ready, dentro del html mo veo nada de script solo codigo Html, no se si te refieres a eso.
  #59 (permalink)  
Antiguo 12/08/2011, 13:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: [Zend] FlashMessenger En Bootstrap

Tienes que ver en el código fuente al generar la pagina, todo lo relacionado a jQuery, y también el document.ready() que agrega el helper, si no lo ves, es porque no tienes bien configurado tu helper.

Mas no se me puede ocurrir la forma del porque no te esta cargando el helper de jQuery.
  #60 (permalink)  
Antiguo 12/08/2011, 22:13
 
Fecha de Ingreso: septiembre-2010
Mensajes: 111
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: [Zend] FlashMessenger En Bootstrap

en el codigo Html generado no muestras nada relacionado con Jquery, ni el document.ready(), como dices debo estar yo creo q configure mal el helper.
como seria la forma correcta de configurar el helper, un ejemplo por favor, sera que le puedo enviar mi codigo a tu correo gracias por todo

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 11:46.