diff --git a/code/SideReport.php b/code/SideReport.php index 1b635480..5acb22d5 100755 --- a/code/SideReport.php +++ b/code/SideReport.php @@ -60,6 +60,12 @@ class SideReportView extends ViewableData { // $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']); @@ -71,17 +77,37 @@ class SideReportView extends ViewableData { $prefix = empty($info['newline']) ? "" : "
"; - $cssClass = ereg_replace('[^A-Za-z0-9]+','',$info['title']); + $classClause = ""; + if(isset($info['title'])) { + $cssClass = ereg_replace('[^A-Za-z0-9]+','',$info['title']); + $classClause = "class=\"$cssClass\""; + } + if(isset($info['link']) && $info['link']) { $link = ($info['link'] === true) ? "admin/show/$record->ID" : $info['link']; - return $prefix . "$val"; + return $prefix . "$val"; } else { - return $prefix . "$val"; + return $prefix . "$val"; } } } +/** + * A report wrapper that makes it easier to define slightly different behaviour for side-reports. + * + * This report wrapper will use sideReportColumns() for the report columns, instead of columns(). + */ +class SideReportWrapper extends SSReportWrapper { + function columns() { + if($this->baseReport->hasMethod('sideReportColumns')) { + return $this->baseReport->sideReportColumns(); + } else { + return parent::columns(); + } + } +} + //////////////////////////////////////////////////////////////////////////////////////////////// /**