From: Jason Woofenden Date: Fri, 29 Oct 2010 06:30:09 +0000 (-0400) Subject: API CHANGE remove "format" arg from pulldown() X-Git-Url: https://jasonwoof.com/gitweb/?p=wfpl.git;a=commitdiff_plain;h=d3416270f26f08e34ff1748e1ee1fef7a15e79db API CHANGE remove "format" arg from pulldown() Both common option formats (PULLDOWN_ARRAY and PULDOWN_2D) are supported (and auto-detected), and can be mixed. PULLDOWN_HASH support is removed (It wasn't great anyway because you couldn't put in two options with the same value.) --- diff --git a/encode.php b/encode.php index 835f7cb..6e57c36 100644 --- a/encode.php +++ b/encode.php @@ -212,32 +212,8 @@ function enc_12hr($str) { - -define('PULLDOWN_ARRAY', 0); define('PULLDOWN_HASH', 1); define('PULLDOWN_2D', 2); - -function pulldown_options_to_2d($options, $keys_from) { - # convert other types of input to value=>display hash - switch($keys_from) { - case PULLDOWN_HASH: - $new_options = array(); - foreach($options as $value => $display) { - $new_options[] = array($value, $display); - } - return $new_options; - case PULLDOWN_ARRAY: - $new_options = array(); - foreach($options as $opt) { - $new_options[] = array($opt, $opt); - } - return $new_options; - break; - case PULLDOWN_2D: - return $options; - break; - default: - die('pulldown_options_to_2d(): unknown value: "' . print_r($keys_from) . '" passed in $keys_from parameter'); - } -} +# These are depricated! All but PULLDOWN_HASH still work, but you should update your code. +define('PULLDOWN_AUTO', 0); define('PULLDOWN_ARRAY', 1); define('PULLDOWN_HASH', 2); define('PULLDOWN_2D', 3); # call this function before you run() the template so enc_options() knows what @@ -247,22 +223,33 @@ function pulldown_options_to_2d($options, $keys_from) { # # name: the name of the html control # -# options: an array of options to display in the pulldown/selectbox -# -# keys_from: Set to one of: -# PULLDOWN_ARRAY: (default) values of $options are displayd and posted -# PULLDOWN_HASH: values of $options are display, keys are posted -# PULLDOWN_2D: $options is a 2 dimensional array. -# $options[0][1] is displayed, $options[0][0] is posted. -# $options[1][1] is displayed, $options[1][0] is posted. +# options: an array of options to display in the pulldown/selectbox. Each +# element can be either a string, or an array with two elements (first the +# value to post, and second the value to display in the pulldown) # # multiple: UNTESTED set to true for multiple-select boxes. -function pulldown($name, $options, $keys_from = PULLDOWN_ARRAY, $multiple = false) { - $options = pulldown_options_to_2d($options, $keys_from); - $GLOBALS[$name . '_options'] = array(); - $GLOBALS[$name . '_options']['options'] = $options; - $GLOBALS[$name . '_options']['multiple'] = $multiple; +function pulldown($name, $in_options, $multiple = false) { + if($multiple === PULLDOWN_HASH) { + die('Webmaster error: PULLDOWN_HASH is depricated. Pass array(a,b) not a=>b'); + } + if($multiple !== true) { + # Probably due to API change (removing 3rd argument) but don't bother + # emitting a warning, because the above warning handles the only + # important case. + $multiple = false; + } + $options = array(); + foreach($in_options as $option) { + if(is_array($option)) { + $options[] = $option; + } else { + $options[] = array($option, $option); + } + } + $GLOBALS[$name . '_options'] = array( + 'options' => $options, + 'multiple' => $multiple); } # output a bunch of