Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'ai un controller de base qui gère les news sur mon site, j'ai 3 pages différentes de news qui marchent de la même manière.
J'ai donc crée 2 controller qui étendent le premier qui gère tout, avec juste un attribut qui sert à savoir quel page de news rendre....
Ceci dit dans les deux controllers qui étendent le controller principal, il faut que dans l'init je dise qu'il faut utiliser le dossier des vues du controller principal, sinon ça me force à les dupliquer , j'ai beau parcourir la doc, je ne vos pas comment faire .
Quelqu'un aurait une idée?
En bref je cherche dans une action d'un controller, à rendre la vue d'un autre controller et ce pour toutes les actions ...
Hors ligne
regarde la section 10.8.4.7.2.
Section API du Viewrenderer, tu devrais trouvé ton bonheur
Hors ligne
Salut,
J'ai eu ce soucis pour mon espace d'admin avec des vues redondantes.
Voici comment j'ai procédé.
Dans le bootstrap j'ai indiqué ajouter un chemin pour les vues communes :
public function initView() { ... ... $view -> addScriptPath(MODULES_DIR . "/default/views/scripts"); ... ... }
Ensuite dans mon nouveau controlleur, dans le init() j'ai fait ça :
$this -> _helper -> viewRenderer -> setViewScriptPathSpec("index/:action.:suffix");
Comme ça les vues vont être cherchées également dans le dossier "index" du module...
Je ne sais pas si le premier bloc de code va t'aider mais j'ai tout mis au cas où
Cordialement,
Kaimite
Hors ligne
Oui merci, en fait j'avais déja trouvé, mais du coup toutes mes actions de n'importe quel controller utilisait le dossier du controller spécifié pour les vues quand je faisais un $this->action dans mon layout.
Donc je m'étais arreté la, et je pensais que j'avais pas trouvé la syntaxe.
Du coup la solution a été de rajouter dans l'init de mon controller abstrait et de réinitialiser à la valeur d'origine :
$this ->_helper ->viewRenderer->setViewScriptPathSpec(":controller/:action.:suffix");
Hors ligne
Pages: 1