Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 18-12-2008 13:29:55

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

[Zend_View]Récupérer la vue après un setView()

Bonjour,


Je cherche à faire un truc tout bête, mais je ne trouve pas comment y accéder.

Pour expliquer rapidement, je met en place un squelette d'application générique, dont le premier rôle est de charger la configuration (environnement + parametres).

J'utilise pour ça un plugin d'initialisation (proche de celui proposé par Zend, mais quand même pas mal modifié).

Dans ce plugin, je charge tout ce qui va bien, j'initialise ma vue ce cette façon :

Code:

/**
     * Initialise la vue en fonction des paramètres définis dans
     * Tight_Registry::getParams()
     * ou avec des valeurs par défaut
     * 
     * @return void
     */
    public function initView()
    {                    
        Zend_Loader::loadClass('Tight_View');                
        $this->_view = new Tight_View();
                               
        $scripts = Tight_Registry::getParams()->get('view')->get('scripts', null);
        if (!is_null($scripts)) {
            foreach($scripts as $script) {
                $this->_view->addScriptPath($this->_root . $script->scriptPath);
            }
        }   
        $scripts = $this->_view->getScriptPaths();
        if (empty($scripts)) {     
            $this->_view->addScriptPath($this->_root . '/application/views/scripts');
        }        
                
        $this->_view->setHttpRoot(Tight_Registry::getConfig()->app->get('httpRoot', ''));
        
        $doctype = Tight_Registry::getParams()->get('view')->get('doctype', 'XHTML1_STRICT');
        $this->_view->doctype($doctype);        
        
        $encoding = Tight_Registry::getParams()->get('view')->get('encoding', 'UTF-8');
        $this->_view->setEncoding($encoding);
        
        //  layouts
        $layoutPath = Tight_Registry::getParams()->get('view')->get('layoutPath', '/application/views/layouts');
        $defaultLayout = Tight_Registry::getParams()->get('view')->get('defaultLayout', 'layout');
        Zend_Layout::startMvc(array(
            'layoutPath' => $this->_root .  $layoutPath,
            'layout'     => $defaultLayout            
        ));
        
        // Recupère l'objet de vue utilisé par les actions des controllers
        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
        $viewRenderer->initView();
        $viewRenderer->setView($this->_view);
    }

Ensuite, plus loin dans mon Tight_Plugin_Initializer, je rajoute au moment d'initialiser les plugins à passer au Front Controller, mon plugin qui configure la langue:

Code:

Zend_Loader::loadClass('Tight_Plugin_Language');
$this->_front->registerPlugin(new Tight_Plugin_Language($this->_root));

Dans mon Tight_View, j'ai une méthode setTranslator() (proche de celle proposée par Azema dans son tuto).

Donc après configuration de mon Zend_Translate dans mon plugin, j'aimerais l'envoyer à ma vue via cette méthode setTranslator().

Sauf que, mis à part le fait de passer mon objet view au constructeur de mon plugin Tight_Plugin_Language, je ne trouve aucun moyen d'accéder à ma méthode. (vu que initView() est appelé avant initPlugins())

Une idée ?

Merci.

A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#2 18-12-2008 15:20:11

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Zend_View]Récupérer la vue après un setView()

Alors j'ai fait de cette manière dans le plugin Tight_Plugin_Language :

Code:

$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$view = Zend_Layout::getMvcInstance()->getView();
$view->setTranslator($translate);
$viewRenderer->setView($view);

Mais je ne suis pas convaincu.


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

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