Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 03-04-2010 15:14:10

Davjack
Membre
Date d'inscription: 06-02-2009
Messages: 32

Impossible de faire fonctionner jQuery... :-(

Bonjour,

Après de longues heures d'essais et recherches, je n'arrive toujours pas à faire fonctionner jQuery avec Zend Framework.

Pour l'instant, j'essais juste d'afficher une boîte de  dialogue (dialogContainer).

Ma page d'index :

Code:

<?php
// index.php
//
// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)));

/** Zend_Application */
require_once 'Zend/Application.php';

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV, 
    APPLICATION_PATH . '/configs/application.ini'
);

$application->bootstrap()
            ->run();

Mon Bootstrap :

Code:

<?php
// application/bootstrap.php
//
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
    public function run() {
        Zend_Registry::set('config', new Zend_Config($this->getOptions()));
        parent::run();
    }


    .
    .
    .


    /**
     * Initialize view
     *
     * @return Zend_View
     */
    protected function _initView() {
        $view = new Zend_View();
        $view->doctype('XHTML1_STRICT');
        $view->headMeta()->appendHttpEquiv('Content-Type','text/html; charset=utf-16');

        ZendX_JQuery::enableView($view);
        $view->jQuery()->enable();
        $view->jQuery()->uiEnable();

        $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
        $viewRenderer->setView($view);

        return $view;
    }
}

Mon layout :

Code:

<?php echo $this->doctype(); ?>
<html>
    <head>
        <?php
        echo $this->headMeta();
        echo $this->headTitle('Titre');
        
        
        echo $this->headLink()->prependStylesheet($this->layout()->getLayoutPath().'/css/styles.css');
        
        if($this->jQuery()->isEnabled()) {
            $this->jQuery()->setLocalPath($this->layout()->getLayoutPath().'/../../js/jquery/jquery-1.4.2.min.js')
                    ->setUiLocalPath($this->layout()->getLayoutPath().'/../../js/jquery/jquery-ui-1.8.custom.min.js')
                    ->addStylesheet($this->layout()->getLayoutPath().'/../../js/jquery/themes/jquery.ui.all.css');
            echo $this->jQuery();
        }
        
        ?>
    </head>
    <body>
        <div class="body" id="body">
            <?php
            //echo $this->layout()->content;
            ?>
            <?php
            echo $this->dialogContainer('test', 'Hello World', array(
            'bgiframe'         => true,
            'autoOpen'         => true,
            'draggable'        => true,
            'modal'            => true,
            'resizable'        => false,
            'title'            => 'Welcome message',
            'closeOnEscape'    => true));
            ?>
        </div>
    </body>
</html>

Avec tout ça, j'ai seulement le texte "Hello World" qui s'affiche sur la page.
Qu'est-ce que je fait faux ?

Dernière modification par Davjack (03-04-2010 17:08:37)

Hors ligne

 

#2 03-04-2010 18:08:11

Davjack
Membre
Date d'inscription: 06-02-2009
Messages: 32

Re: Impossible de faire fonctionner jQuery... :-(

Je me réponds tout seul. Il faut lancer le "echo $this->jQuery();" à la fin du Layout pour que les différents composants jQuery soient également lancées (logique... mais quand on cherche le problème complètement ailleurs, ce n'est pas facile à trouver :-D ).
En espérant que ça pourra en débloquer certains.

Hors ligne

 

#3 03-04-2010 19:27:08

throrin19
Membre
Date d'inscription: 01-03-2009
Messages: 318
Site web

Re: Impossible de faire fonctionner jQuery... :-(

enlève aussi ton  if($this->jQuery()->isEnabled()), JQuery se lance tout seul si tu en as réellement besoin dans tes pages donc inutile et c'est peut-être sa qui te fait planter.

Hors ligne

 

#4 07-04-2010 09:06:44

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: Impossible de faire fonctionner jQuery... :-(

Moi, je propose autre chose pour ton bootstrap.
En fait, je ne propose de ne rien mettre, mais de ce servir uniquement de application.ini
Attention, uniquement valable depuis 1.10 (resources JQuery)

ZendX doit être dans ton includePath (pas besoin de déclarer le namespace, l'autoloader le fait déjà)
A rajouté :

Code:

pluginPaths.ZendX_Application_Resource = "ZendX/Application/Resource/"

resources.Jquery.localpath           = "/js/vendor/jquery-1.4.2.min.js"
resources.Jquery.uilocalpath       = "/js/vendor/jquery-ui-1.8.min.js"
resources.Jquery.javascriptfiles[] = "/js/vendor/jquery.hoverIntent.minified.js"
resources.Jquery.javascriptfiles[] = "/js/common.js"
resources.Jquery.javascriptfiles[] = "/js/myMenu.js"
resources.Jquery.stylesheets[]     = "/css/reset.css"
resources.Jquery.stylesheets[]     = "/css/ui/ui.base.css"
resources.Jquery.stylesheets[]     = "/css/uiThemes/start/theme.css"

et bien sur, il suffit juste de mettre le echo $this->JQuery() dans le layout

voir ZendFramework/extras/library/ZendX/Application/Resource/Jquery.php pour toutes les options


----
Gruiiik !

Hors ligne

 

#5 13-04-2010 10:26:19

Davjack
Membre
Date d'inscription: 06-02-2009
Messages: 32

Re: Impossible de faire fonctionner jQuery... :-(

Le fait d'ajouter les ressources jQuery dans le fichier de config épure bien le code. Merci pour le conseil wink

Hors ligne

 

#6 27-04-2010 13:27:15

ze-pequeno
Nouveau membre
Date d'inscription: 16-11-2009
Messages: 3

Re: Impossible de faire fonctionner jQuery... :-(

Oui effectivement, c'est sûr que cela épure le code. Par contre, moi j'ai un petit problème. Dès que je rajout ces lignes dans mon fichiers de configuration, voici les erreurs que je retrouve :

Code:

[27-Apr-2010 13:22:59] PHP Fatal error:  Uncaught exception 'Zend_Application_Bootstrap_Exception' with message 'Resource matching "view" not found' in C:\usr\share\zend\1.10.3\library\Zend\Application\Bootstrap\BootstrapAbstract.php:690
Stack trace:
#0 C:\usr\share\zend\1.10.3\library\Zend\Application\Bootstrap\BootstrapAbstract.php(625): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('view')
#1 C:\usr\share\zend\1.10.3\library\Zend\Application\Bootstrap\BootstrapAbstract.php(582): Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap('view')
#2 C:\usr\share\zend\1.10.3\extras\library\ZendX\Application\Resource\Jquery.php(87): Zend_Application_Bootstrap_BootstrapAbstract->bootstrap('view')
#3 C:\usr\share\zend\1.10.3\extras\library\ZendX\Application\Resource\Jquery.php(76): ZendX_Application_Resource_Jquery->getJquery()
#4 C:\usr\share\zend\1.10.3\library\Zend\Application\Bootstrap\BootstrapAbstract.php(679): ZendX_Application_Resource_Jquery->init()
#5 C:\usr\share\zend\1.10.3\library\Zend\Application\Bootstrap\BootstrapAbstract in C:\usr\share\zend\1.10.3\library\Zend\Application\Bootstrap\BootstrapAbstract.php on line 690

Je comprend qu'il n'arrive pas à satisfaire la dépendance avec la ressource View, mais je ne comprend pas pourquoi ?

Hors ligne

 

#7 28-04-2010 12:52:27

ze-pequeno
Nouveau membre
Date d'inscription: 16-11-2009
Messages: 3

Re: Impossible de faire fonctionner jQuery... :-(

Finalement j'ai trouvé une solution. Cependant j'aimerais quand même que quelqu'un m'explique.

J'ai rajouté cette ligne dans mon fichier de configuration :

Code:

resources.view[] = ""

Ma question est donc la suivante, cette ligne sert bien à initialiser la ressource View ? Si oui, quelle est la différence avec ce bout de code (ZendX_Application_Resource_Jquery : ligne 86) :

Code:

$this->getBootstrap()->bootstrap('view');

Merci d'avance

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages