Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
hello,
Je fais suite au sujet suivant qui consistait à récupérer le render courant d'une vue.
Cependant, les choses deviennent plus difficiles dés lors que je veux récupérer le render d'un Layout dans une action.
En effet, le render semble s'effectuer uniquement lors du dispatch et même en naviguant dans l'API j'ai eu du mal à déterminer à quel moment et dans quelle méthode tout se "construit" afin d'afficher le tout.
J'ai bien réussi la chose en isolant le dispatch() mais c'est très mauvais vu que ça intervient directement dans l'index.php.
Pour information, je souhaite récupérer le render afin de stocker tout le contenu dans un fichier .php franchement crée, en gros :
$data = $layout->render('ma-vue'); file_put_contents(PATH . '/fichier.php', $data);
Je pourrais uniquement utiliser des vues mais c'est pas ce qu'il y a de meilleur.
Quelqu'un à réussi? des pistes à suivre?
Merci d'avance,
Dernière modification par thoas (20-07-2008 22:03:03)
Hors ligne
Le rendu du Layout s'effectue en postDispatch() dans Zend_Layout_Controller_Plugin, qui est enregistré grâce à la méthode Zend_Layout::startMvc().
Note : il est possible d'utiliser les Layouts hors cadre MVC.
Hors ligne
Merci d'avance d'avoir répondu vite.
En gros, il faut que j'isole le résultat de $layout->render() au sein de Zend_Layout_Controller_Plugin afin de récupérer le tout dans une variable. Cependant, cette méthode se déclenche uniquement lors du postDispatch d'un Zend_Controller_Action et impossible de l'effectuer dans une Action.
Partant de cette hypothèse, quelles peuvent être les solutions?
Une solution (bancale) consiste à charger un ob_start() dans l'action et à mettre un paramètre qui sera identifié ensuite dans postDispatch(), selon ce paramêtre un ob_get_contents() sera effectué ou non.
Hors ligne
Pages: 1