1 <?php
2 3 4 5 6 7 8 9 10 11 12 13 14
15 class GroupedDropdownField extends DropdownField {
16
17 function Field() {
18
19 $options = '';
20 $classAttr = '';
21
22 if($extraClass = trim($this->extraClass())) {
23 $classAttr = "class=\"$extraClass\"";
24 }
25
26 foreach($this->getSource() as $value => $title) {
27 if(is_array($title)) {
28 $options .= "<optgroup label=\"$value\">";
29 foreach($title as $value2 => $title2) {
30 $selected = $value2 == $this->value ? " selected=\"selected\"" : "";
31 $options .= "<option$selected value=\"$value2\">$title2</option>";
32 }
33 $options .= "</optgroup>";
34 } else {
35 $selected = $value == $this->value ? " selected=\"selected\"" : "";
36 $options .= "<option$selected value=\"$value\">$title</option>";
37 }
38 }
39
40 $id = $this->id();
41
42 return "<select $classAttr name=\"$this->name\" id=\"$id\">$options</select>";
43 }
44 }
45
46 ?>
[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the
Silverstripe Forums to ask development related questions.
-