diff options
Diffstat (limited to 'views/default/input/dropdown.php')
| -rw-r--r-- | views/default/input/dropdown.php | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/views/default/input/dropdown.php b/views/default/input/dropdown.php index 6fd97d3b5..9f07874f1 100644 --- a/views/default/input/dropdown.php +++ b/views/default/input/dropdown.php @@ -3,7 +3,7 @@ * Elgg dropdown input * Displays a dropdown (select) input field * - * NB: Default values of FALSE or NULL will match '' (empty string) and not 0. + * @warning Default values of FALSE or NULL will match '' (empty string) but not 0. * * @package Elgg * @subpackage Core @@ -11,16 +11,27 @@ * @uses $vars['value'] The current value, if any * @uses $vars['options'] An array of strings representing the options for the dropdown field * @uses $vars['options_values'] An associative array of "value" => "option" - * where "value" is an internal name and "option" is + * where "value" is the name and "option" is * the value displayed on the button. Replaces * $vars['options'] when defined. + * @uses $vars['class'] Additional CSS class */ +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-dropdown {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-dropdown"; +} + $defaults = array( - 'class' => 'elgg-input-dropdown', - 'disabled' => FALSE, + 'disabled' => false, + 'value' => '', + 'options_values' => array(), + 'options' => array(), ); +$vars = array_merge($defaults, $vars); + $options_values = $vars['options_values']; unset($vars['options_values']); @@ -30,10 +41,8 @@ unset($vars['options']); $value = $vars['value']; unset($vars['value']); -$attrs = array_merge($defaults, $vars); - ?> -<select <?php echo elgg_format_attributes($attrs); ?>> +<select <?php echo elgg_format_attributes($vars); ?>> <?php if ($options_values) { @@ -47,13 +56,15 @@ if ($options_values) { echo "<option $option_attrs>$option</option>"; } } else { - foreach ($options as $option) { + if (is_array($options)) { + foreach ($options as $option) { - $option_attrs = elgg_format_attributes(array( - 'selected' => (string)$option == (string)$value - )); + $option_attrs = elgg_format_attributes(array( + 'selected' => (string)$option == (string)$value + )); - echo "<option $option_attrs>$option</option>"; + echo "<option $option_attrs>$option</option>"; + } } } ?> |
