Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 04-07-2008 16:31:49

Bast
Membre
Date d'inscription: 07-06-2007
Messages: 138

[Résolu] Layout, partial et visibilité des variables de la vue

Bonjour,
Lorsque j'appelle un bout de vue avec partial() dans mon layout, le code appelé par partial n'a pas accès aux variables de la vue (tous les $this->blabla me renvoient une erreur de variable inconnue).

Quelqu'un sait ce que j'ai oublié de faire ?

C'est un souci qui me bloque complètement, car du coup je ne peux pas aficher mes menus sad
Alors un grand merci d'avance à ceux qui pourront m'aider !! ^^

Dernière modification par Bast (04-07-2008 20:39:58)

Hors ligne

 

#2 04-07-2008 17:09:17

2mx
Membre
Lieu: Grenoble
Date d'inscription: 06-08-2007
Messages: 125

Re: [Résolu] Layout, partial et visibilité des variables de la vue

Le partial clone la vue existante et gicle toute les variables publiques via $view->clearVars();

Pour pouvoir garder toute les variables communes définit dans mon boostrap, j'ai contourné le problème en surchargeant Zend_View_Helper_Partial::cloneView() :

Code:

require_once 'Zend/View/Helper/Partial.php';

class Mmx_View_Helper_Partial extends Zend_View_Helper_Partial
{

    /**
     * Clone the current View
     *
     * @return Zend_View_Interface
     */
    public function cloneView()
    {
        $commonViewVars = array('acl', 'urlRoot', 'urlMaster', 'urlAssets', 'urlTheme', 'urlImages', 'urlSwf', 'urlMedias', 'urlCss', 'urlJs', 'domain', 'subDomain');
        $view = clone $this->view;
        $vars   = get_object_vars($view);
        foreach ($vars as $key => $value) {
            if ('_' != substr($key, 0, 1) && !in_array($key, $commonViewVars)) {
                unset($view->$key);
            }
        }
        return $view;
    }

}

C'est un peu bourrin car la liste des variables commune à toutes les vues est en dur. Ce serrait sans doute plus élégant de le faire avec Zend_Registry

Dernière modification par 2mx (04-07-2008 17:30:21)

Hors ligne

 

#3 04-07-2008 17:28:03

2mx
Membre
Lieu: Grenoble
Date d'inscription: 06-08-2007
Messages: 125

Re: [Résolu] Layout, partial et visibilité des variables de la vue

Par contre si c'est une variable spécifique :

Code:

$this->partial('monpartial.phtml', null, array('mavar' => $this->mavar))

Dernière modification par 2mx (04-07-2008 17:28:31)

Hors ligne

 

#4 04-07-2008 17:35:53

Bast
Membre
Date d'inscription: 07-06-2007
Messages: 138

Re: [Résolu] Layout, partial et visibilité des variables de la vue

Merci beaucoup, ça fonctionne !!

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