Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 17-07-2008 11:19:11

iLoLo21
Membre
Date d'inscription: 17-07-2008
Messages: 13

Aide de vue introuvable

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 :

Code:

<?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 :

Code:

<?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 :

Code:

// 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

 

#2 26-07-2008 14:50:01

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: Aide de vue introuvable

Bonjour,

j'ai rencontré exactement le même problème que toi.
J'avais juste rajouté les lignes :

Code:

$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

 

#3 26-07-2008 15:36:48

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: Aide de vue introuvable

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 :

Code:

$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+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

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