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

Problemas con ZendX_JQuery y mi propio Zend_View_Helper_Abstract

Estas en el tema de Problemas con ZendX_JQuery y mi propio Zend_View_Helper_Abstract en el foro de Zend en Foros del Web. Buenas a todos. Estoy empezando a integrar ZendX_JQuery en mi aplicación Zend y todo funciona correctamente pero he intentado añadir un "accordion" en un Zend_View_Helper_Abstract ...
  #1 (permalink)  
Antiguo 01/07/2011, 13:47
 
Fecha de Ingreso: junio-2011
Ubicación: Granada
Mensajes: 19
Antigüedad: 12 años, 10 meses
Puntos: 0
Pregunta Problemas con ZendX_JQuery y mi propio Zend_View_Helper_Abstract

Buenas a todos.

Estoy empezando a integrar ZendX_JQuery en mi aplicación Zend y todo funciona correctamente pero he intentado añadir un "accordion" en un Zend_View_Helper_Abstract que tengo para el menu lateral y no hay manera.

Mi Layout.phtml
Código PHP:
<?php echo $this->doctype(); ?>
<html xmlns="http://www.w3.org/1999/xhtml" collation>
    <head>
        <?php echo $this->headMeta(); ?>
        <?php echo $this->headTitle(); ?>
        <?php echo $this->headLink()->prependStylesheet($this->baseUrl()."/css/estilo.css")."\n"?>
>
        <?php
            
if($this->jQuery()->isEnabled()){
                
$jQuery=$this->jQuery();
                
$jQuery->setLocalPath($this->baseUrl()."/js/jquery.js"); 
                
$jQuery->setUiLocalPath($this->baseUrl()."/js/jquery-ui.js");
                
$jQuery->addStyleSheet($this->baseUrl()."/css/jquery-ui-1.8.14.custom.css");
                echo 
$jQuery;
            }
        
?>
    </head>
    <body>
        <?php echo $this->menuLateral(); ?>
        <?php echo $this->menuSuperior(); ?>
        
        <div id="content" class="content">
            <h1><?php echo $this->escape($this->title); ?></h1>
            <?php echo $this->layout()->content?>
        </div>
    </body>
</html>

Mi MenuLateral.php
Código PHP:
<?php
class Default_View_Helper_MenuLateral extends Zend_View_Helper_Abstract {
    public function 
menuLateral(){        
        
$menu="<div id='menulateral' class='menulateral'>";
        
$menu.=$this->view->accordionPane('menu''menu1', array('title' => 'menu1'));
        
$menu.=$this->view->accordionPane('menu''menu2', array('title' => 'menu2'));
        
$menu.=$this->view->accordionContainer('menu', array('active' => 'none''collapsible' => 'true'));
        
$menu.="</div>";
        return 
$menu;
    }
}
?>
Esto mismo lo hago en cualquier vista "prueba.phtml"(por poner un ejemplo) y funciona a la perfección.

¿Tiene alguien alguna idea de que puedo estar haciendo mal?
  #2 (permalink)  
Antiguo 03/07/2011, 05:10
 
Fecha de Ingreso: junio-2011
Ubicación: Granada
Mensajes: 19
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problemas con ZendX_JQuery y mi propio Zend_View_Helper_Abstract

Veo que el problema es poco usual. Voy a intentar explicarme mejor y ser más escueto.

El JQuery me está funcionando correctamente si el código lo tengo en index.phtml

Código PHP:
<form>
<? php echo $ this-> datePicker ('DP3''', array ());?>
</ form>
Pero si este mismo código lo pongo en el layout.phtml no funciona. Al parecer, por lo que dicen por aquí
http://zend-framework-community.634137.n4.nabble.com/jquery-datepicker-in-layout-phtml-td3239102.html
es problema del renderer del layout.phtml, es decir, el layout.phtml no se renderiza como una vista.

Estoy utilizando el placeholder view helper para intentar renderizarlo como una vista y no lo consigo.

¿Alguna idea?
  #3 (permalink)  
Antiguo 03/07/2011, 05:48
 
Fecha de Ingreso: junio-2011
Ubicación: Granada
Mensajes: 19
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problemas con ZendX_JQuery y mi propio Zend_View_Helper_Abstract

Solucionado. El problema estaba en que en layout.phtml no se renderiza como una vista ya que no pasa por el flujo render de Zend.

Lo que he hecho es colocar el echo $this->jQuery(); al final del body.

Mi Layout.phtml

Código PHP:
<?php echo $this->doctype(); ?>
<html xmlns="http://www.w3.org/1999/xhtml" collation>
    <head>
        <?php echo $this->headMeta(); ?>
        <?php echo $this->headTitle(); ?>
        <?php echo $this->headLink()->prependStylesheet($this->baseUrl()."/css/estilo.css")."\n"?>
    </head>
    <body>
        <?php echo $this->menuLateral(); ?>
        <?php echo $this->menuSuperior(); ?>
        <div id="content" class="content">
            <h1><?php echo $this->escape($this->title); ?></h1>
            <?php echo $this->layout()->content?>
        </div>
        <?php
            
//Código jquery. No se pone en la cabecera por que si no no renderiza el código jquery del layout
            
$jQuery=$this->jQuery();
            
$jQuery->setLocalPath($this->baseUrl()."/js/jquery.js");
            
$jQuery->setUiLocalPath($this->baseUrl()."/js/jquery-ui.js");
            
$jQuery->addStyleSheet($this->baseUrl()."/css/jquery-ui-1.8.14.custom.css");
            echo 
$this->jQuery();    
        
?>
    </body>
</html>
Si alguien conoce una práctica mejor agradecería comentarios. No me gusta eso de tener el javascript en el body.
  #4 (permalink)  
Antiguo 05/07/2011, 09: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: Problemas con ZendX_JQuery y mi propio Zend_View_Helper_Abstract

Creo te faltaría hacer un jQuery()->enable(); aunque dejes el código de jQuery() arriba en el <head>.

Yo actualmente así lo tengo en uno de mis sistemas, tengo todo lo de jQuery() en el <head></head> de mi Layout, y en el body tengo un menu, para que se "active" hago un <?php $this->jQuery()->enable()->uiEnable(); ?>

Saludos.
  #5 (permalink)  
Antiguo 11/07/2011, 10:47
 
Fecha de Ingreso: junio-2011
Ubicación: Granada
Mensajes: 19
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problemas con ZendX_JQuery y mi propio Zend_View_Helper_Abstract

Cita:
Iniciado por GatorV Ver Mensaje
Creo te faltaría hacer un jQuery()->enable(); aunque dejes el código de jQuery() arriba en el <head>.

Yo actualmente así lo tengo en uno de mis sistemas, tengo todo lo de jQuery() en el <head></head> de mi Layout, y en el body tengo un menu, para que se "active" hago un <?php $this->jQuery()->enable()->uiEnable(); ?>

Saludos.
Perdona que no te haya contestado antes pero el tema de las vacaciones es sagrado.

He probado lo que me comentabas y no me funciona, es decir, no se activa jquery en el propio layout.phtml.
  #6 (permalink)  
Antiguo 11/07/2011, 10:52
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: Problemas con ZendX_JQuery y mi propio Zend_View_Helper_Abstract

Muy raro, yo lo tengo tal cual en mi proyecto y funciona perfectamente con $jQuery->enable(), de hecho mi cabecera es así:
Código PHP:
Ver original
  1. <?php echo $this->doctype(); ?>
  2. <?php ZendX_JQuery_View_Helper_JQuery::enableNoConflictMode(); ?>
  3. <html>
  4. <head>
  5.     <?php echo $this->headTitle(); ?>
  6.     <?php echo $this->headScript()->appendFile('/js/ac.js'); ?>
  7.     <?php echo $this->headMeta(); ?>
  8.     <?php echo $this->jQuery()->enable()->addJavascriptFile('/js/ddsmoothmenu.js'); ?>
  9.     <?php echo $this->headLink()
  10.                     ->appendStylesheet('/css/global.css')
  11.                     ->appendStylesheet('/css/popup.css')
  12.                     ->appendStylesheet('/css/ddsmoothmenu-v.css')
  13.                     ->appendStylesheet('/css/ddsmoothmenu.css'); ?>
  14. </head>

Saludos.

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 08:12.