Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à toutes et à tous,
La question du jour concernera la personnalisation du path pour les helpers de vue.
Alors j'ai la structure suivante :
+ application + modules + news + controllers IndexController.php + views + helpers SetMyTitle.php + scripts + index index.phtml
Dans l'action 'index' de IndexController.php, j'ai :
$view = new Zend_View(); $view->setHelperPath('C:\wamp\www\zf\application\modules\news\views\helpers','My_View_Helper_');
Dans mon helper (SetMyTitle.php) :
<?php class My_View_Helper_SetMyTitle { public function setMyTitle() { $request = Zend_Controller_Front::getInstance()->getRequest(); $this->headTitle($request->getModuleName()) ->headTitle($request->getControllerName()) ->headTitle($request->getActionName()); $this->headTitle('La page des news'); $this->headTitle()->setSeparator(' - '); return $this->headTitle; } }
Enfin dans ma vue :
<?= $this->doctype('XHTML1_STRICT'); ?> <?php $this->headTitle($this->setMyTitle()); ?> <h1>neWs</h1> <p>Lorem ipsum telme is metrir loram pullum timinum</p>
Donc sauf erreur de ma part, l'application concrète de la doc sur le sujet (http://framework.zend.com/manual/en/zen … pers.paths).
Et pourtant, j'obtiens l'erreur suivante :
( ! ) Zend_View_Exception: helper 'SetMyTitle' not found in path in C:\wamp\www\zf\library\Zend\View\Abstract.php on line 1004 Call Stack # Time Memory Function Location 1 0.9598 48928 {main}( ) ..\index.php:0 2 0.9606 60016 require( 'C:\wamp\www\zf\application\bootstrap.php' ) ..\index.php:2 3 1.0254 1259048 Zend_Controller_Front->dispatch( ) ..\bootstrap.php:40
Toutefois si je vérifie, les paths avec getHelperPaths(), tout semble ok :
array 0 => array 'prefix' => string 'My_View_Helper_' (length=15) 'dir' => string 'C:\wamp\www\zf\application\modules\news\views\helpers\' (length=54) 1 => array 'prefix' => string 'Zend_View_Helper_' (length=17) 'dir' => string 'C:\wamp\www\zf\library\Zend\View\Helper\' (length=40)
Qui a une idée, j'ai cherché dans le forum et sur Google mais les quelques threads que j'ai pu voir ne m'ont pas apporté la solution.
Je suis sous Zend Framework v1.5.2 avec WampServer en version 2.0
Merci de votre aide.
Dernière modification par elkolonel (25-06-2008 17:23:43)
Hors ligne
elkolonel a écrit:
Bonjour à toutes et à tous,
...
Dans mon helper (SetMyTitle.php) :Code:
<?php class My_View_Helper_SetMyTitle { public function setMyTitle() { .... } }..
Merci de votre aide.
Essaye de renommer cette classe en Zend_View_Helper_SetMyTitle, je viens de regarder mes views helpers aucun ne commencent par My_QuelqueChose
Je n'utilise My_Toto que pour mes classes persos reutilisables sous le chemin library/My/
Hors ligne
fte a écrit:
elkolonel a écrit:
Bonjour à toutes et à tous,
...
Dans mon helper (SetMyTitle.php) :Code:
<?php class My_View_Helper_SetMyTitle { public function setMyTitle() { .... } }..
Merci de votre aide.Essaye de renommer cette classe en Zend_View_Helper_SetMyTitle, je viens de regarder mes views helpers aucun ne commencent par My_QuelqueChose
Je n'utilise My_Toto que pour mes classes persos reutilisables sous le chemin library/My/
Alors, il semblerait que tu ais raison.
J'ai modifié mon code comme suit :
Action 'index' de IndexController
... function indexAction () { $view = new Zend_View(); $view->addHelperPath('C:\wamp\www\zf\application\modules\news\views\helpers'); } ...
Le code du Helper
<?php class Zend_View_Helper_SetMyTitle { public function setMyTitle($param='Bienvenue') { $view = new Zend_View(); $request = Zend_Controller_Front::getInstance()->getRequest(); $view->headTitle($request->getModuleName()) ->headTitle($request->getControllerName()) ->headTitle($request->getActionName()); $view->headTitle($param); $view->headTitle()->setSeparator(' - '); return $view->headTitle; } }
Le code de la vue
<?= $this->doctype('XHTML1_STRICT'); ?> <?= $this->headTitle($this->setMyTitle('Les news du jour')); ?> <h1>neWs</h1> <p>Lorem ipsum telme is metrir loram pullum timinum</p>
Si je modifie le nom de la classe helper en quelquechose d'autre que 'Zend_View_Helper_SetMyTitle', cela ne fonctionne plus, même si je modifie le prefixe d'helper dans l'appel de mon 'IndexController'.
D'ailleurs que je mette quelquechose ou pas dans le paramètre préfixe du helper rien ne se passe à part modifier le préfixe helper dans l'array retourné par getHelperPaths().
Bug or not bug ??
Faut il le signaler ?
Merci en tout cas fte !
Cordialement,
Hors ligne
Pages: 1