Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 20-07-2008 20:45:57

thoas
Nouveau membre
Lieu: Paris, France
Date d'inscription: 02-03-2008
Messages: 8

[Zend_Layout][1.5.2] Récupérer le render d'un Layout

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 :

Code:

$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

 

#2 21-07-2008 01:15:32

Julien
Membre
Date d'inscription: 16-03-2007
Messages: 501

Re: [Zend_Layout][1.5.2] Récupérer le render d'un Layout

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

 

#3 21-07-2008 11:18:11

thoas
Nouveau membre
Lieu: Paris, France
Date d'inscription: 02-03-2008
Messages: 8

Re: [Zend_Layout][1.5.2] Récupérer le render d'un Layout

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

 

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