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