Per note from Rodrigo:
You know, the FormSelect helper doesn't allow optgroups. I've hacked
it to allow groups. When an option label is an array, it uses the
option value as the group label and the label as the options array. It
is dirty, but it works. :-)
if(is_array($opt_label)) {
$list[] = '<optgroup label="' . $opt_value . '">';
foreach ($opt_label as $opt_group_value => $opt_group_label) {
$selected = '';
if (in_array($opt_group_label, $this->_value)) {
$selected = ' selected="selected"';
}
$list[] = '<option'
. ' value="' . $this->_view->escape($opt_group_value) . '"'
. ' label="' . $this->_view->escape($opt_group_label) . '"'
. $selected
. '>' . $this->_view->escape($opt_group_label) . "</option>";
}
$list[] = '</optgroup>';
} else {
... current FormSelect options building ...