function runAction() { if (!$this->_request->isPost()) { throw new Am_Exception_InputError('Only POST accepted'); } $reportId = $this->getFiltered('report_id'); if (!$reportId) { throw new Am_Exception_InternalError("Empty report id passed"); } $r = Am_Report_Abstract::createById($reportId); $r->applyConfigForm($this->_request); $this->view->form = $r->getForm(); $this->view->report = $r; if (!$r->hasConfigErrors()) { $result = $r->getReport(); foreach ($r->getOutput($result) as $output) { $this->view->content .= $output->render() . "<br /><br />"; } // default $default = $r->getForm()->getValue(); unset($default['_save_']); unset($default['save']); $this->getSession()->reportDefaults = $default; } $this->view->display('admin/report_output.phtml'); }
function sendSavedReports(Am_Event $event) { class_exists('Am_Report', true); require_once 'Am/Report/Standard.php'; foreach ($this->getDi()->adminTable->findBy() as $admin) { $frequency = $admin->getPref(Admin::PREF_REPORTS_SEND_FREQUENCY); if ($frequency == $event->getId()) { $content = ''; foreach ($this->findByAdminId($admin->pk()) as $report) { $r = Am_Report_Abstract::createById($report->report_id); $r->applyConfigForm(new Am_Request(unserialize($report->request))); $result = $r->getReport(); $output = new Am_Report_Text($result); $content .= $report->title . "\n----------------------------\n"; $content .= $output->render() . "\n"; } if ($content) { $mail = $this->getDi()->mail; $mail->addTo($admin->email); $mail->setSubject($this->getDi()->config->get('site_title') . ': Reports'); $mail->setBodyText($content); $mail->send(); } } } }
public function exportAction() { $reportId = $this->getFiltered('report_id'); $request = unserialize($this->getParam('request')); $r = Am_Report_Abstract::createById($reportId); $r->applyConfigForm(new Am_Request($request)); $result = $r->getReport(); $dat = date('YmdHis'); $output = new Am_Report_Csv($result); $data = $output->render(); $this->_helper->sendFile->sendData($data, 'text/csv', "amember_reports-{$reportId}-{$dat}.csv"); throw new Am_Exception_Redirect(); }
public function renderWidgetReport(Am_View $view, $config = null, $invokeArgs = array()) { require_once 'Am/Report.php'; require_once 'Am/Report/Standard.php'; $view->enableReports(); /* @var $savedReport SavedReport */ $savedReport = $invokeArgs['savedReport']; $request = new Am_Request(unserialize($savedReport->request)); $r = Am_Report_Abstract::createById($savedReport->report_id); $r->applyConfigForm($request); $result = $r->getReport(); $result->setTitle($savedReport->title); $type = is_null($config) ? 'graph-line' : $config['type']; switch ($type) { case 'graph-line': $output = new Am_Report_Graph_Line($result); $output->setSize('100%', 250); break; case 'graph-bar': $output = new Am_Report_Graph_Bar($result); $output->setSize('100%', 250); break; case 'table': $output = new Am_Report_Table($result); break; default: throw new Am_Exception_InputError(___('Unknown report display type [%s]', $type)); } return sprintf('<h2>%s</h2><div class="admin-index-report-wrapper"><div class="admin-index-report report-%s">%s</div></div>', $savedReport->title, $savedReport->report_id, $output->render()); }