controller = $controller; $this->report = $report; parent::__construct(); } public function group() { return _t('SilverStripe\\Reports\\SideReport.OtherGroupTitle', "Other"); } public function sort() { return 0; } public function setParameters($parameters) { $this->parameters = $parameters; } public function forTemplate() { $records = $this->report->records($this->parameters); $columns = $this->report->columns(); if ($records && $records->Count()) { $result = "\n"; } else { $result = "

" . _t( 'SilverStripe\\Reports\\SideReport.REPEMPTY', 'The {title} report is empty.', array('title' => $this->report->title()) ) . "

"; } return $result; } protected function formatValue($record, $source, $info) { // Field sources //if(is_string($source)) { $val = Convert::raw2xml($record->$source); //} else { // $val = $record->val($source[0], $source[1]); //} // Casting, a la TableListField. We're deep-calling a helper method on TableListField that // should probably be pushed elsewhere... if (!empty($info['casting'])) { $val = TableListField::getCastedValue($val, $info['casting']); } // Formatting, a la TableListField if (!empty($info['formatting'])) { $format = str_replace('$value', "__VAL__", $info['formatting']); $format = preg_replace('/\$([A-Za-z0-9-_]+)/', '$record->$1', $format); $format = str_replace('__VAL__', '$val', $format); $val = eval('return "' . $format . '";'); } $prefix = empty($info['newline']) ? "" : "
"; $classClause = ""; if (isset($info['title'])) { $cssClass = preg_replace('/[^A-Za-z0-9]+/', '', $info['title']); $classClause = "class=\"$cssClass\""; } if (isset($info['link']) && $info['link']) { $link = ($info['link'] === true && $record->hasMethod('CMSEditLink')) ? $record->CMSEditLink() : $info['link']; return $prefix . "$val"; } else { return $prefix . "$val"; } } }