/** * Render the requested Report * * @param sfWebRequest $request The request. It's expected to have the following * parameters: * <ul> * <li>array<b> export</b> With the report selection and desired output rendering * format. * <li>array<b> options</b> With custom options that wlil be pased to the callback * function provided by the report designer for generating the LogicalScreen. * <li>string<b> logicalScreen</b> With a string representation of a XML DOM. * if provided, step1 gets bypassed, thus <b>options</b> param is ignored. * </li> * </ul> * * @return sfView::NONE renderText() with the report contents. */ public function executeRender(sfWebRequest $request) { $this->_confSrc = ConfigManager::includeConfig(); $exportForm = new SelectReportForm(array(), $this->_confSrc); $exportForm->bind($request->getParameter('export')); $this->redirectUnless($exportForm->isValid(), 'export/index'); $config = ConfigManager::configureExport($exportForm->getValues(), (array) $request->getParameter('options', array())); $dom = new DOMDocument(); $dom = $dom->loadXML($request->getParameter('logicalScreen', null)) ? $dom : null; $report = LayoutManager::getInstance()->render($config, $this->getResponse(), $dom); $this->getResponse()->setContent(''); return $this->renderText($report); }