extranet/application/controllers/PrintController.php
2011-05-10 07:25:07 +00:00

91 lines
2.2 KiB
PHP

<?php
class PrintController extends Zend_Controller_Action
{
public function init(){}
/**
* Renvoie les paramètres pour l'impression
*/
protected function pageParams($fichierPart)
{
$elements = explode('-', $fichierPart);
$controller = $elements[0];
$action = $elements[1];
$params = array();
switch($controller){
case 'identite':
$params['siret'] = $elements[2];
$params['id'] = $elements[3];
break;
}
return array(
'controller' => $controller,
'action' => $action,
'params' => $params
);
}
public function indexAction(){}
/**
* Imprime la page en PDF
* Par défaut, le contenu html a déjà été enregistré..
* Mais si ce n'est pas le cas retrouver le contenu
* Générer le PDF gràce à wkhtmltopdf
* Attention à bien retrouver les css spécifiques pour l'impression
* !! Cacher le menu display:none
*/
public function pdfAction()
{
$request = $this->getRequest();
$fichier = $request->getParam('fichier');
if (substr($fichier,-4)!='.pdf') {
echo 'Fichier incorrect';
exit;
}
$fichier = str_replace('.pdf', '', $fichier);
//On Cherche le fichier html
//Le fichier html n'est pas présent
$elements = $this->pageParams($fichier);
$contoller = $elements['controller'];
$action = $elements['action'];
$params = $elements['params'];
$params['print'] = 'pdf';
// Désactivation affichage
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$content = $this->view->action($action, $controller, null, $params);
}
/**
* Imprime la page en activant le javascript d'impression
* Il faut récupérer le controller et l'action du nom du fichier, ainsi que
* les paramètres
* Par exemple :
* identite-fiche-siret-id.html
*/
public function ecranAction()
{
$request = $this->getRequest();
$fichier = $request->getParam('fichier', '');
if (substr($fichier,-5)!='.html') {
echo 'Fichier incorrect';
exit;
}
$fichier = str_replace('.html', '', $fichier);
$elements = $this->pageParams($fichier);
$this->view->assign('controller', $elements['controller']);
$this->view->assign('action', $elements['action']);
$this->view->assign('params', $elements['params']);
}
}