]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Refs #2143: DRYed up input/dropdown -- probably could be better still
authorewinslow <ewinslow@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sat, 12 Feb 2011 06:38:18 +0000 (06:38 +0000)
committerewinslow <ewinslow@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sat, 12 Feb 2011 06:38:18 +0000 (06:38 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@8144 36083f99-b078-4883-b0ff-0f9b5a30f544

views/default/input/dropdown.php

index 99657d9833d373793b3377f0e49785d47299198b..6fd97d3b5d4b86800041c2ab268a808498fb215b 100644 (file)
@@ -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
  *                               $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>";
        }
 }
 ?>