Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour.
J'ai un petit souci au niveau de l'aide de vue lorsque je me trouve dans un module.
J'appel un helper dans le layout principal sans probleme lorsque je suis sur default. Mais lorsque je clique sur un lien pour afficher un module, j'ai ce message :
helper 'MonHelper' not found in path
Le layout est le même et ne change pas d'un poil, je ne comprend pas pourquoi il ne trouve plus le helper surtout qu'il devrait être gardé en mémoire à la première instance...
Voici le code de mon layout :
<?php echo $this->doctype('XHTML1_STRICT') ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <?php echo $this->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=UTF-8')->appendHttpEquiv('Content-Language', 'fr-FR') ?> <?php echo $this->headTitle($this->title) ?> <?php echo $this->headLink()->appendStylesheet($this->monHelper(). $this->css) ?> </head> <body> <?php echo $this->render('header.phtml'); ?> <?php if($this->userIdentity()) : ?> <?php echo $this->render('nav.phtml'); ?> <?php endif; ?> <div id="container"> <?php echo $this->layout()->content ?> </div> <?php echo $this->render('footer.phtml'); ?> </body> </html>
Est-ce que quelqu'un à une idée ?
Suis je obligé de mettre :
<?php $this->addHelperPath('application/views/helpers', 'MonHelper') ?>
dans mon layout ? je pensait que ce chemin était charger par défaut dans zend ? Lorsque je fait ca, ca fonctionne.
EDIT : Bon j'ai trouvé une solution :
// view helpers $view = new Zend_View(); $view->setHelperPath('../application/modules/default/views/helpers', 'My_View_Helper'); $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer(); $viewRenderer->setView($view); Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
Merci !
Dernière modification par iLoLo21 (17-07-2008 12:18:19)
Hors ligne
Bonjour,
j'ai rencontré exactement le même problème que toi.
J'avais juste rajouté les lignes :
$view = new Zend_View(); $view->setHelperPath('../application/modules/default/views/helpers', 'My_View_Helper');
Je me disais que cela suffirait à rajouter un chemin vers mes view helpers perso mais ça n'a pas marché.
J'ai donc trouvé ton post, rajouté les même ligne que toi et ça marche.
Cependant, je suis toujours débutant sur le ZF et je n'arrive pas à comprendre le pourquoi du comment?
Quelqu'un pourrait m'expliquer ces dernières lignes ?
Hors ligne
Hello,
Le fait de paramètrer UNE instance de Zend_View ne paramètre pas toutes les instances de ton code et entre autre celle du ViewRenderer.
Dans mon bootstrap, je fais :
$view = new Zend_View(); $view->setBasePath('../application/views'); $view->addHelperPath('../library/Mp/View/Helper', 'Mp_View_Helper'); $view->addScriptPath('../application/layouts'); $view->doctype('XHTML1_TRANSITIONAL'); // <- en faisant ceci dès le bootstrap, les aides de vue qui varie suivant le type de document (xhtml ou non) sont informées Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->setView($view);
A+
Hors ligne