Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
Je n'arrive pas à déterminer comment mettre le chemin de mes scripts de vues en fonction du module en cours.
En effet, depuis ma vue je n'ai pas accès au controlleur, et je me vois mal mettre $view->setScriptPath() dans le postDispatch de mes actions (c'est pas là que cela devrait être non ?).
Quelle est la logique la meilleure ?
Hors ligne
dans tes dossiers tu dois avoir
/Module
/Controllers
/views
/scripts
Hors ligne
Salut,
Ce n'était pas ma question
Je voulais savoir comment spécifier des chemins variables en fonction du module.
$viewHelper->view->addHelperPath(CWD.'application/:module/views/helpers','Monhelper');
//même chose pour les templates
=> le :module n'est pas transformé.
Hors ligne
Je te laisse regardé la doc du ZF, section 10.8.4.7.2. API (du viewrenderer)
fonction à utiliser :
$viewrenderer::setViewBasePathSpec()
$viewrenderer::setViewScriptPathSpec()
avec
:moduleDir représente le module courant (par convention le dossier parent au dossier contrôleur). :module pointe vers le module actuel. :controller pointe vers le contrôleur actuel. :action représente l'action actuellement traitée. :suffix est utilisée pour le suffixe du script de vue. setViewSuffix() permet aussi de le modifier.
tout est dans le doc
Hors ligne
Salut,
Alors visiblement je ne fais pas comme il est recommandé, mais de mon côté je fais de cette manière dans mon initializer:
$this->_view->addScriptPath($this->_root . '/application/' . $this->_client->tpl_name . '/views/scripts'); $this->_view->addScriptPath('views/');
Pour situer le cas de figure, je gère des templates (application + vue), qui sont chacun un module différent. Ils possèdent tous un bootstrap, un initializer, des modèles et des librairies communs.
J'identifie le client par son nom de domaine, récupère en BDD son template et sa configuration et j'effectue les lignes précédentes lors de l'initialisation de ma vue (entre autres :p).
L'application va donc chercher d'abord dans le dernier Path définit, ce qui permet d'avoir des vues personnalisées.
Plus précisément, si je place une vue dans le dossiers "views" du dossier public du client, ZF utilisera cette vue en lieu et place de celle présente dans "$this->_root . '/application/' . $this->_client->tpl_name . '/views/scripts'".
La doc explique bien ceci.
A+ benjamin.
Hors ligne