diff options
Diffstat (limited to 'views/default/input/dropdown.php')
-rw-r--r-- | views/default/input/dropdown.php | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/views/default/input/dropdown.php b/views/default/input/dropdown.php new file mode 100644 index 000000000..b4d38fb00 --- /dev/null +++ b/views/default/input/dropdown.php @@ -0,0 +1,58 @@ +<?php +/** + * Elgg dropdown input + * Displays a dropdown (select) input field + * + * NB: Default values of FALSE or NULL will match '' (empty string) and not 0. + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['value'] The current value, if any + * @uses $vars['js'] Any Javascript to enter into the select tag + * @uses $vars['internalname'] The name of the select field + * @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 + * the value displayed on the button. Replaces + * $vars['options'] when defined. + */ + +$class = $vars['class']; +if (!$class) { + $class = "elgg-input-dropdown"; +} + +if (!isset($vars['value'])) { + $vars['value'] = elgg_get_sticky_value($vars['internalname']); +} + +?> +<select name="<?php echo $vars['internalname']; ?>" <?php if (isset($vars['internalid'])) echo "id=\"{$vars['internalid']}\""; ?> <?php echo $vars['js']; ?> <?php if ($vars['disabled']) echo ' disabled="yes" '; ?> class="<?php echo $class; ?>"> +<?php + +if ($vars['options_values']) { + foreach($vars['options_values'] as $value => $option) { + + $encoded_value = htmlentities($value, ENT_QUOTES, 'UTF-8'); + $encoded_option = htmlentities($option, ENT_QUOTES, 'UTF-8'); + + if ((string)$value == (string)$vars['value']) { + echo "<option value=\"$encoded_value\" selected=\"selected\">$encoded_option</option>"; + } else { + echo "<option value=\"$encoded_value\">$encoded_option</option>"; + } + } +} else { + foreach($vars['options'] as $option) { + $encoded_option = htmlentities($option, ENT_QUOTES, 'UTF-8'); + + if ((string)$option == (string)$vars['value']) { + echo "<option selected=\"selected\">$encoded_option</option>"; + } else { + echo "<option>$encoded_option</option>"; + } + } +} +?> +</select> |