theme = Zend_Registry::get('theme'); } /** * 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': case 'dirigeant': $params['siret'] = $elements[2]; $params['id'] = $elements[3]; break; case 'finance': switch($action){ case 'synthese': case 'bilan': $params['typeBilan'] = $elements[4]; break; case 'ratios': $params['typeBilan'] = $elements[4]; $params['mil'] = $elements[5]; break; case 'liasse': $params['date'] = $elements[3]; break; } $params['siret'] = $elements[2]; $params['id'] = $elements[3]; break; case 'juridique': switch($action){ case 'annonces': $params['siret'] = $elements[2]; $params['id'] = $elements[3]; $params['idAnn'] = $elements[4]; $params['vue'] = $elements[5]; $params['p'] = $elements[6]; break; case 'infosreg': case 'conventions': $params['siret'] = $elements[2]; $params['id'] = $elements[3]; break; case 'competences': $params['siret'] = $elements[2]; $params['id'] = $elements[3]; $params['type'] = $elements[4]; break; case 'marques': $params['siret'] = $elements[2]; $params['id'] = $elements[3]; $params['idObject'] = $elements[4]; break; default: return false; break; } break; case 'evaluation': $params['siret'] = $elements[2]; $params['id'] = $elements[3]; switch($action){ case 'scoreshisto': $params['type'] = $elements[4]; break; } break; case 'giant': $params['Pays'] = $elements[2]; $params['Type'] = $elements[3]; $params['CompanyId'] = $elements[4]; $params['Language'] = $elements[5]; break; case 'surveillance': switch($action){ case 'fichier': $params['nomFic'] = $elements[2]; $params['filtre'] = $elements[3]; break; } break; case 'worldcheck': $params['matchIdentifier'] = $elements[2]; $params['nameType'] = $elements[3]; break; default: return false; 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); $c = Zend_Registry::get('config'); $file = $c->profil->path->shared.'/temp/pages/'.$fichier.'.html'; if (!file_exists($file)) { echo 'Fichier introuvable'; exit; } $pdf = new Scores_Wkhtml_Pdf(); $pdf->setOptions('footer-right', 'Page [page] sur [toPage]'); $pdf->setOptions('header-right', date('d/m/Y H:i:s')); $output_file = $pdf->exec($file); //Envoi au navigateur if(!file_exists($output_file)) { echo 'Impossible de générer le fichier PDF'; exit; } $content_type = 'application/pdf'; $dest = 'I'; switch($dest) { case 'I': //Send to standard output header('Content-type: '.$content_type.''); header('Content-Length: '.filesize($output_file)); header('Content-MD5: '.base64_encode(md5_file($output_file))); header('Content-Disposition: inline; filename="'.basename($output_file).'"'); header('Cache-Control: private, max-age=0, must-revalidate'); header('Pragma: public'); ini_set('zlib.output_compression','0'); echo file_get_contents($output_file); exit; // nécessaire pour être certain de ne pas envoyer de fichier corrompu break; case 'D': //Download file header('Content-Tranfer-Encoding: none'); header('Content-Length: '.filesize($output_file)); header('Content-MD5: '.base64_encode(md5_file($output_file))); header('Content-Type: application/octetstream; name="'.basename($output_file).'"'); header('Content-Disposition: attachment; filename="'.basename($output_file).'"'); header('Cache-Control: private, max-age=0, must-revalidate'); header('Pragma: public'); ini_set('zlib.output_compression','0'); //header('Date: '.gmdate(DATE_RFC1123);); //header('Expires: '.gmdate(DATE_RFC1123, time()+1)); //header('Last-Modified: '.gmdate(DATE_RFC1123, filemtime($output_file))); echo file_get_contents($output_file); exit; // nécessaire pour être certain de ne pas envoyer de fichier corrompu break; } } /** * 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); if ($elements===false){ exit; } $this->view->assign('controller', $elements['controller']); $this->view->assign('action', $elements['action']); Zend_Registry::get('firebug')->info($elements['params']); $this->view->assign('params', $elements['params']); } /** * Envoi le fichier XML de l'objet sérialiser sur la sortie standard */ public function xmlAction() { $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $request = $this->getRequest(); $fichier = $request->getParam('fichier', ''); if (substr($fichier,-4)!='.xml') { echo 'Fichier incorrect.'; exit; } $c = Zend_Registry::get('config'); $file = $c->profil->path->shared.'/temp/files/'.$fichier; if (!file_exists($file)){ echo "Erreur lors de la génération du fichier."; exit; } header("Content-type: application/xml"); header("Content-Disposition: attachement; filename=\"$fichier\""); flush(); echo file_get_contents($file); } }