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($params['ID']) { Session::set('currentPage', $params['ID']); } if($params['OtherID']) { Session::set('currentOtherID', $params['OtherID']); } if($_REQUEST['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 = $_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); if($page) $reportClass = "Report_".$page->ClassName; if(!$reportClass) $reportClass = $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; } } ?>