diff options
author | ewinslow <ewinslow@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2011-02-12 06:38:18 +0000 |
---|---|---|
committer | ewinslow <ewinslow@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2011-02-12 06:38:18 +0000 |
commit | 26dd8f6f14179882e88a2180bdbcf35868ad23ca (patch) | |
tree | ab5c2970f8c68f39087c5b57a83594bc7f66b1e4 | |
parent | 4959fa0e2c17dd4060db0736b2acf96ac2073710 (diff) | |
download | elgg-26dd8f6f14179882e88a2180bdbcf35868ad23ca.tar.gz elgg-26dd8f6f14179882e88a2180bdbcf35868ad23ca.tar.bz2 |
Refs #2143: DRYed up input/dropdown -- probably could be better still
git-svn-id: http://code.elgg.org/elgg/trunk@8144 36083f99-b078-4883-b0ff-0f9b5a30f544
-rw-r--r-- | views/default/input/dropdown.php | 53 |
1 files changed, 29 insertions, 24 deletions
diff --git a/views/default/input/dropdown.php b/views/default/input/dropdown.php index 99657d983..6fd97d3b5 100644 --- a/views/default/input/dropdown.php +++ b/views/default/input/dropdown.php @@ -9,8 +9,6 @@ * @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 @@ -18,37 +16,44 @@ * $vars['options'] when defined. */ -$class = $vars['class']; -if (!$class) { - $class = "elgg-input-dropdown"; -} +$defaults = array( + 'class' => 'elgg-input-dropdown', + 'disabled' => FALSE, +); + +$options_values = $vars['options_values']; +unset($vars['options_values']); + +$options = $vars['options']; +unset($vars['options']); +$value = $vars['value']; +unset($vars['value']); + +$attrs = array_merge($defaults, $vars); ?> -<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; ?>"> +<select <?php echo elgg_format_attributes($attrs); ?>> <?php -if ($vars['options_values']) { - foreach($vars['options_values'] as $value => $option) { +if ($options_values) { + foreach ($options_values as $opt_value => $option) { - $encoded_value = htmlentities($value, ENT_QUOTES, 'UTF-8'); - $encoded_option = htmlentities($option, ENT_QUOTES, 'UTF-8'); + $option_attrs = elgg_format_attributes(array( + 'value' => $opt_value, + 'selected' => (string)$opt_value == (string)$value, + )); - 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>"; - } + echo "<option $option_attrs>$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>"; - } + foreach ($options as $option) { + + $option_attrs = elgg_format_attributes(array( + 'selected' => (string)$option == (string)$value + )); + + echo "<option $option_attrs>$option</option>"; } } ?> |