Pass hidden flags through customize page
authorMarty Connor <mdc@etherboot.org>
Tue, 9 Sep 2008 07:48:39 +0000 (03:48 -0400)
committerMarty Connor <mdc@etherboot.org>
Tue, 9 Sep 2008 07:48:39 +0000 (03:48 -0400)
configinfo.php

index 80d3d17..c04f448 100644 (file)
@@ -145,6 +145,11 @@ function get_nicfile ()
   return ( $retval );
 }
 
+function hidden ( $flag, $value ) {
+  $value = htmlentities ( $value );
+  return "<input type=\"hidden\" value=\"$value\" name=\"$flag\"></input>";
+}
+
 function checkbox ( $flag, $value ) {
   return "<input type=\"checkbox\" value=\"on\" name=\"$flag\"" .
     ($value == "on" ? " checked>" : ">" );
@@ -304,42 +309,49 @@ function echo_flags ( $flags ) {
 
     $value = isset ( $flags[$flag] ) ? $flags[$flag] : '';
 
-    if ( ( $hide_from_user != "yes" ) && ($type == "header" || $farch == "all" 
-                                         || $farch == $arch ) ) {
-      
-      if ( $type == "header" ) {
-
-        $label = $props["label"];
-       echo "<td colspan=2><hr><h3>$label</h3><hr></td>";
-
-      } elseif ($type == "on/off" ) {
-
-       echo "<td>", checkbox($flag, $value), "</td><td><b>$flag</b></td>";
-
-      } else {         // no checkbox
-
-       echo "<td>&nbsp;</td><td><b>$flag: </b>";
-
-       if ($type == "choice" ) {
-         $options = $props["options"];
-         echo menubox($flag, $options, $value);
-       }
-
-       else {
-         echo textbox($flag, $value, ($type == "integer" ? 5 : 25));
-       }
-
-       echo "</td>";
-
+    if ( $hide_from_user == "yes" ) {
+      // Hidden flags cannot not be set by the user.  We use hidden form
+      // fields to keep them at their default values.
+      if ( $type != "header" && ( $farch == "all" || $farch == $arch ) ) {
+        echo hidden ( $flag, $value );
       }
-
-      echo "</tr>\n";
-
-      if ( $type != "header" ) {
-       echo "<tr><td>&nbsp;</td>";
-       echo "<td>\n";
-       include "doc-$version/$flag.html";
-       echo "\n</td></tr>\n";
+    } else {
+      if ( $type == "header" || $farch == "all" || $farch == $arch ) {
+      
+        if ( $type == "header" ) {
+  
+          $label = $props["label"];
+       echo "<td colspan=2><hr><h3>$label</h3><hr></td>";
+  
+        } elseif ($type == "on/off" ) {
+  
+       echo "<td>", checkbox($flag, $value), "</td><td><b>$flag</b></td>";
+  
+        } else {       // no checkbox
+  
+       echo "<td>&nbsp;</td><td><b>$flag: </b>";
+  
+       if ($type == "choice" ) {
+         $options = $props["options"];
+         echo menubox($flag, $options, $value);
+       }
+  
+       else {
+         echo textbox($flag, $value, ($type == "integer" ? 5 : 25));
+       }
+  
+       echo "</td>";
+  
+        }
+  
+        echo "</tr>\n";
+  
+        if ( $type != "header" ) {
+       echo "<tr><td>&nbsp;</td>";
+       echo "<td>\n";
+       include "doc-$version/$flag.html";
+       echo "\n</td></tr>\n";
+        }
       }
     }
   }