aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorewinslow <ewinslow@36083f99-b078-4883-b0ff-0f9b5a30f544>2011-02-12 06:38:18 +0000
committerewinslow <ewinslow@36083f99-b078-4883-b0ff-0f9b5a30f544>2011-02-12 06:38:18 +0000
commit26dd8f6f14179882e88a2180bdbcf35868ad23ca (patch)
treeab5c2970f8c68f39087c5b57a83594bc7f66b1e4
parent4959fa0e2c17dd4060db0736b2acf96ac2073710 (diff)
downloadelgg-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.php53
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>";
}
}
?>