Bonjour,

Je vous expose mon problème :

J'ai un controlleur "Devis" avec une action "generer" qui affiche un devis à l'écran. A la fin de cette page, il y a un lien vers une action "genererpdf" du même controlleur "Devis".

Voici le code de cette action "genererpdf" :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
public function genererpdfAction()
        {
                $this->_helper->layout->disableLayout();
 
                $id = $this->_getParam('devisId');
 
                $devis             = new DB_Views_Devis();
                $this->view->devis = $devis->fetchById($id);
 
                $projet             = new DB_Views_Projet();
                $this->view->projet = $projet->fetchById($this->view->devis[0]['projetId']);
 
                $client = new DB_Views_Client();
                $this->view->client = $client->fetchById($this->view->projet[0]['clientId']);
 
                $tache              = new DB_Views_Tache();
                $this->view->taches = $tache->fetchByProjet($this->view->projet[0]['projetId']);
}
Je désactive donc l'utilisation du layout pour cette action et le fichier genererpdf.phtml génère un fichier HTML complet (avec les head, les définitions de style, etc.) dans le but ultime de générer un PDF en utilisant DOMPDF.

Pour ce faire, ma vue genererpdf.phtml ne génère pas d'affichage mais tout est placé dans un flux et le flux est ensuite sauvé dans une variable $html.

Mon objectif serait ensuite de pouvoir "repasser" la main à mon controlleur Devis et à l'action "genererpdf" de celui-ci pour qu'il prenne le contenu de cette variable $html et l'utilise pour générer mon PDF en utilisant DOMPDF.

Mais voila ... je ne vois pas comment faire ...

J'ai même tenté, à la fin de ma vue, de faire un

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Zend_Registry::set('myhtml', $html);
mais quand ensuite, je fais un

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Zend_Registry::get('myhtml');
il me dit qu'il n'y a pas de clé de ce nom dans le registre ...

J'ai réussi à générer le PDF en plaçant le code permettant cela (le code de DOMPDF) directement dans ma vue mais je trouve que le solution n'est pas très propre ... en effet, mettre du code PHP dans mes vues ... bof bof ...

Quelqu'un a-t-il une solution pour moi ?

Merci,
Olivier