name = $name; parent::__construct($items); Requirements::css('sapphire/css/SelectionGroup.css'); } /** * Return a readonly version of this field. Keeps the composition but returns readonly * versions of all the children */ public function performDisabledTransformation($trans) { $newChildren = array(); if($this->children) foreach($this->children as $idx => $child) { if(is_object($child)) { $child = $child->transform($trans); } $newChildren[$idx] = $child; } $this->children = new FieldSet($newChildren); $this->readonly = true; return $this; } function FieldSet() { $items = parent::FieldSet()->toArray(); $count = 0; $firstSelected = $checked =""; foreach($items as $key => $item) { if(strpos($key,'//') !== false) { list($key,$title) = explode('//', $key,2); } else { $title = $key; } if($this->value == $key) { $firstSelected = " class=\"selected\""; $checked = " checked=\"checked\""; } $itemID = $this->ID() . '_' . (++$count); $extra = array( "RadioButton" => "name\" value=\"$key\"$checked />", "RadioLabel" => "", "Selected" => $firstSelected, ); if(is_object($item)) $newItems[] = $item->customise($extra); else $newItems[] = new ArrayData($extra); $firstSelected = $checked =""; } return new DataObjectSet($newItems); } function hasData() { return true; } function FieldHolder() { Requirements::javascript('jsparty/prototype.js'); Requirements::javascript('jsparty/behaviour.js'); Requirements::javascript('jsparty/prototype_improvements.js'); Requirements::javascript('sapphire/javascript/SelectionGroup.js'); return $this->renderWith("SelectionGroup"); } } ?>