/** * Pre-render the field. * * @return void */ protected function preRender() { $options = array(); if ($this->dynamicOptions) { if (is_array($this->dynamicOptions)) { foreach (array_keys($this->dynamicOptions) as $key) { if (is_callable($this->dynamicOptions[$key])) { $options[$key] = call_user_func($this->dynamicOptions[$key]); } } } else { if (is_callable($this->dynamicOptions)) { $options = call_user_func($this->dynamicOptions); } } } foreach ((array) $options as $value => $label) { $this->addOption($value, $label); } parent::preRender(); }
/** * Pre-render the field. * * @return void */ protected function preRender() { $options = array(); if ($this->dynamicOptions) { if (is_array($this->dynamicOptions)) { foreach (array_keys($this->dynamicOptions) as $key) { if (is_callable($this->dynamicOptions[$key])) { $options[$key] = call_user_func($this->dynamicOptions[$key]); } } } else { if (is_callable($this->dynamicOptions)) { $options = call_user_func($this->dynamicOptions); } } } $depth = thb_array_depth($options); if ($depth == 2) { foreach ((array) $options as $optgroup => $values) { $this->addOptionsGroup($optgroup, $values); } } else { foreach ((array) $options as $value => $label) { $this->addOption($value, $label); } } if ($this->invisibleIfEmpty && count($this->_data['field_options']) <= 1) { $this->addClass('invisible'); } parent::preRender(); }