/** * Performs actual download * * @param \MUtil_Model_Bridge_FormBridgeInterface $bridge * @param \MUtil_Model_ModelAbstract $model */ protected function downloadExportFile() { $this->view->layout()->disableLayout(); \Zend_Controller_Action_HelperBroker::getExistingHelper('viewRenderer')->setNoRender(true); $batch = $this->getExportBatch(false); $downloadName = $batch->getSessionVariable('downloadname'); $localFilename = $batch->getSessionVariable('filename'); header("Content-Type: application/download"); header("Content-Disposition: attachment; filename=\"{$downloadName}\""); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Pragma: cache"); // HTTP/1.0 readfile($localFilename); exit; }
Zend_Db_Table::setDefaultAdapter($db); $db->query('SET NAMES ' . $config->charset); Zend_Registry::set('db', $db); // Remove the following line in production $frontController->throwExceptions(true); $frontController->setBaseUrl('/mailer/'); $frontController->addModuleDirectory('application/modules'); $view = new Zend_View(); $view->doctype('XHTML1_STRICT'); $view->setEncoding('UTF-8'); $view->baseUrl = $frontController->getBaseUrl(); // layout to be determined by the AjaxCheckPlugin, see library directory for details :) $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view); Zend_Controller_Action_HelperBroker::addHelper($viewRenderer); // Paginator setup Zend_Paginator::setDefaultScrollingStyle('Sliding'); Zend_View_Helper_PaginationControl::setDefaultViewPartial('paginator.phtml'); // Run the dispatcher $frontController->returnResponse(true); $response = $frontController->dispatch(); // Output in UTF-8 if ($view->layout()->isEnabled()) { if ($view->layout()->getLayout() == 'common') { $response->setHeader("Content-Type", "text/html; charset=UTF-8", true); } elseif ($view->layout()->getLayout() == 'ajax') { $response->setHeader("Content-Type", "text/xml; charset=UTF-8", true); } elseif ($view->layout()->getLayout() == 'xml') { $response->setHeader("Content-Type", "text/xml; charset=UTF-8", true); } } $response->sendresponse();
/** * Renders the entire report (including layout) * * @param array|string[] $respondentId * @param boolean $group Group same surveys or not * @param string $format html|pdf, the output format to use */ public function render($respondents, $group = true, $format = 'html') { $this->_group = $group; $this->html->snippet($this->_reportHeader); $respondentCount = count($respondents); $respondentIdx = 0; foreach ($respondents as $respondentId) { $respondentIdx++; $this->_exportRespondent($respondentId); if ($respondentIdx < $respondentCount) { // Add some whitespace between patients $this->html->div('', array('style' => 'height: 100px')); } } $this->html->snippet($this->_reportFooter, 'respondents', $respondents); $this->menu->setVisible(false); if ($this->escort instanceof \Gems_Project_Layout_MultiLayoutInterface) { $this->escort->layoutSwitch(); } $this->escort->postDispatch(\Zend_Controller_Front::getInstance()->getRequest()); \Zend_Controller_Action_HelperBroker::getExistingHelper('layout')->disableLayout(); \Zend_Controller_Action_HelperBroker::getExistingHelper('viewRenderer')->setNoRender(true); $this->view->layout()->content = $this->html->render($this->view); $content = $this->view->layout->render(); if ($format == 'pdf') { if (is_array($respondentId) && isset($respondentId['gr2o_id_organization'])) { $respondentId = $respondentId['gr2o_patient_nr']; } $filename = 'respondent-export-' . strtolower($respondentId) . '.pdf'; $content = $this->_pdf->convertFromHtml($content); $this->_pdf->echoPdfContent($content, $filename, true); } else { echo $content; } $this->menu->setVisible(true); }