/** * Build a potentially nested fieldgroup * * @param mixed $valueOrGroup Value of item, or title of group * @param string|array $titleOrOptions Title of item, or options in grouip * @return ArrayData Data for this item */ protected function getFieldOption($valueOrGroup, $titleOrOptions) { // Return flat option if (!is_array($titleOrOptions)) { return parent::getFieldOption($valueOrGroup, $titleOrOptions); } // Build children from options list $options = new ArrayList(); foreach ($titleOrOptions as $childValue => $childTitle) { $options->push($this->getFieldOption($childValue, $childTitle)); } return new ArrayData(array('Title' => $valueOrGroup, 'Options' => $options)); }