Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-07-2010 16:28:09

alphonix
Membre
Date d'inscription: 20-01-2010
Messages: 10

Zend_view [1.10.5] Init et Utilisation

Bonjour,

Je voudrais pouvoir intialiser uen seule fois la view principal avec des aides de vue tels que headTitle, doctype etc.. Et pouvoir ajouter des aides de vue supplémentaire au besoin dans des methodes qui genere du contenu specific a la page actuelle.

Pouvez vous m'expliquer pourquoi le code suivant ne fonctionne pas ? :
L'ordre d'execture est dans l'ordre de presentation, le layout fais le rendu a la fin avec la view par défaut soit la vue init au debut. Sauf que le probleme c'est que l'aide de vue (ici jquery de la class2) soit  " $view->JQuery()->addJavascriptFile('Js/genTable.js'); " n'est pas répercuté dans le rendu du layout final. Alors que celui dispose bien de tous les appels comme :
    $layout.= $this->JQuery();
    $layout.= $this->headScript();



Class1 :

Code:

   public function initView() {
        $view = new Zend_View();
        $view->setEncoding('UTF-8');
        $view->doctype('XHTML1_STRICT');
        $view->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=UTF-8');
         ....
         ZendX_JQuery::enableView($view);
         $view->jQuery()->setLocalPath('Js/...js');
         $view->jQuery()->setUiLocalPath('Js/....js');
         $view->jQuery()->enable();
         $view->jQuery()->uiEnable();

   // Récupération de l'aide de rendu automatique de vues : viewRenderer | évite le setView sur une balise form
        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
        // Passage de notre vue à ViewRenderer
        $viewRenderer->setView($view);
}


 public static function getView() {
        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
        return $viewRenderer->view;
    }

Class2 (genere du contenu specific):

Code:

     function method1(){
        $view  = Prj_Controller_Abstract::getView();
        $view->JQuery()->addJavascriptFile('Js/genTable.js');
     ....
     return $html;
    }

Class1 (pour finir):

Code:

           $layout = new Zend_Layout();
            $layout->setLayoutPath('Layout/');
            $layout->content = $html; // return de class2
            echo $layout->render();

Je pense que j'ai pas bien compris l'utilisation de Zend_Controller_Action_HelperBroker.

Merci de votre aide.

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