Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
Alors un grand merci d'avance à ceux qui pourront m'aider !! ^^
Dernière modification par Bast (04-07-2008 20:39:58)
Hors ligne
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() :
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
Par contre si c'est une variable spécifique :
$this->partial('monpartial.phtml', null, array('mavar' => $this->mavar))
Dernière modification par 2mx (04-07-2008 17:28:31)
Hors ligne
Merci beaucoup, ça fonctionne !!
Hors ligne
Pages: 1