project() . "/css/editor.css", "BaseURL" => Director::absoluteBaseURL(), "Lang" => i18n::get_tinymce_lang() )); } } public function Link($action = null) { return "admin/reports/$action"; } public function Reports(){ $allReports= ClassInfo::subclassesFor("Report"); foreach($allReports as $report) { if($report != 'Report') $processedReports[] = new $report(); } $reports = new DataObjectSet($processedReports); return $reports; } public function showreport($params) { return $this->showWithEditForm( $params, $this->getReportEditForm( $params['ID'] ) ); } protected function showWithEditForm( $params, $editForm ) { if(isset($params['ID'])) { Session::set('currentPage', $params['ID']); } if(isset($params['OtherID'])) { Session::set('currentOtherID', $params['OtherID']); } if(Director::is_ajax()) { SSViewer::setOption('rewriteHashlinks', false); $result = $this->customise( array( 'EditForm' => $editForm ) )->renderWith($this->getTemplatesWithSuffix("_right")); return $this->getLastFormIn($result); } else { return array(); } } public function EditForm() { $id = (isset($_REQUEST['ID'])) ? $_REQUEST['ID'] : Session::get('currentPage'); $subclasses = ClassInfo::subclassesFor('Report'); foreach($subclasses as $class){ if($class != 'Report') { $obj = new $class(); $ids[] = $obj->getOwnerID(); } } // bdc: do we have any subclasses? if(sizeof($ids) > 0){ if($id && in_array($id, $ids)) return $this->getReportEditForm($id); } else { return null; } } public function getReportEditForm($id){ if(is_numeric($id)) $page = DataObject::get_by_id("SiteTree", $id); $reportClass = (isset($page)) ? "Report_".$page->ClassName : $id; $obj = new $reportClass(); $fields = $obj->getCMSFields(); $fields->push($idField = new HiddenField("ID")); $idField->setValue($id); //$actions = new FieldSet(new FormAction('exporttocsv', 'Export to CVS')); $actions = new FieldSet(); $form = new Form($this, "EditForm", $fields, $actions); return $form; } /** * Determine if we have reports and need to display the Reports main menu item * * @return boolean */ public static function has_reports() { $subclasses = ClassInfo::subclassesFor('Report'); foreach($subclasses as $class){ if($class != 'Report') { return true; } } return false; } } ?>