JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
pulldown options can be disabled
[wfpl.git] / encode.php
index 6e57c36..7afae37 100644 (file)
@@ -263,6 +263,21 @@ function enc_options($values, $name) {
        return encode_options($values, $GLOBALS[$name . '_options']['options'], PULLDOWN_2D);
 }
 
+# for radios and pulldowns:
+# pass posted value
+# returns what the user sees in the pulldown or on the radio button caption
+function enc_pulled($str, $name) {
+       if(!isset($GLOBALS[$name . '_options'])) {
+               die("pulldown('$name') must be called before this template can be run. See code/wfpl/encode.php");
+       }
+       foreach($GLOBALS[$name . '_options']['options'] as &$kv) {
+               if($kv[0] == $str) {
+                       return $kv[1];
+               }
+       }
+       return $str;
+}
+
 function enc_radio_n($str, $name, $n) {
        if(!isset($GLOBALS[$name . '_options'])) {
                die("pulldown('$name') must be called before this template can be run. See code/wfpl/encode.php");
@@ -328,12 +343,14 @@ function encode_options($selected, $options, $keys_from) {
        }
 
        $out = '';
-       foreach($options as $valdisp) {
-               list($value, $display) = $valdisp;
+       foreach($options as $option) {
+               list($value, $display, $arg3) = $option;
                $out .= '<option';
 
-               if(in_array($value, $selected)) {
-                       $out .= ' selected="selected"';
+               if($arg3 == 'disabled') {
+                       $out .= ' disabled';
+               } elseif(in_array($value, $selected)) {
+                       $out .= ' selected';
                }
 
                if($value !== $display || strpos($value, ' ') !== false) {