"submit") { $fieldname = $field['name']; $fieldname = str_replace(" ", "", $fieldname); $fieldname = strtolower($fieldname); // update field with posted values. if($field['unsetfield'] <> "") $unset_fields = "yes"; else $unset_fields = ""; if($field['arraynum'] <> "") $arraynum = $field['arraynum']; else $arraynum = ""; update_config_field( $field['bindstofield'], $_POST[$fieldname], $unset_fields, $arraynum, $field['type']); } } // run custom php code embedded in xml config. if($pkg['step'][$stepid]['stepsubmitphpaction'] <> "") { eval($pkg['step'][$stepid]['stepsubmitphpaction']); } write_config(); $stepid++; if($stepid > $totalsteps) $stepid = $totalsteps; } function update_config_field($field, $updatetext, $unset, $arraynum, $field_type) { global $config; $field_split = split("->",$field); foreach ($field_split as $f) $field_conv .= "['" . $f . "']"; if($field_conv == "") return; if ($arraynum <> "") $field_conv .= "[" . $arraynum . "]"; if(($field_type == "checkbox" and $updatetext <> "on") || $updatetext == "") { /* * item is a checkbox, it should have the value "on" * if it was checked */ $var = "\$config{$field_conv}"; $text = "if (isset({$var})) unset({$var});"; eval($text); return; } if($field_type == "interfaces_selection") { $var = "\$config{$field_conv}"; $text = "if (isset({$var})) unset({$var});"; $text = "\$config" . $field_conv . " = \"" . $updatetext . "\";"; eval($text); return; } if($unset == "yes") { $text = "unset(\$config" . $field_conv . ");"; eval($text); } $text = "\$config" . $field_conv . " = \"" . $updatetext . "\";"; eval($text); } $title = preg_replace("/pfSense/i", $g['product_name'], $pkg['step'][$stepid]['title']); $description = preg_replace("/pfSense/i", $g['product_name'], $pkg['step'][$stepid]['description']); // handle before form display event. do { $oldstepid = $stepid; if($pkg['step'][$stepid]['stepbeforeformdisplay'] <> "") eval($pkg['step'][$stepid]['stepbeforeformdisplay']); } while ($oldstepid != $stepid); $pgtitle = array($title); include("head.inc"); ?>
\n"; else echo ""; ?> "") { ?> "") { // create a fieldname loop that can be used with javascript // hide and enable features. echo "\n\n\n"; } if($pkg['step'][$stepid]['stepafterformdisplay'] <> "") { // handle after form display event. eval($pkg['step'][$stepid]['stepafterformdisplay']); } if($pkg['step'][$stepid]['javascriptafterformdisplay'] <> "") { // handle after form display event. echo "\n\n\n"; } /* * HELPER FUNCTIONS */ function fixup_string($string) { global $config, $myurl; $newstring = $string; // fixup #1: $myurl -> http[s]://ip_address:port/ switch($config['system']['webgui']['protocol']) { case "http": $proto = "http"; break; case "https": $proto = "https"; break; default: $proto = "http"; break; } $port = $config['system']['webgui']['port']; if($port != "") { if(($port == "443" and $proto != "https") or ($port == "80" and $proto != "http")) { $urlport = ":" . $port; } elseif ($port != "80" and $port != "443") { $urlport = ":" . $port; } else { $urlport = ""; } } $myurl = $proto . "://" . $_SERVER['HTTP_HOST'] . $urlport . "/"; if (strstr($newstring, "\$myurl")) $newstring = str_replace("\$myurl", $myurl, $newstring); // fixup #2: $wanip if (strstr($newstring, "\$wanip")) { $curwanip = get_interface_ip(); $newstring = str_replace("\$wanip", $curwanip, $newstring); } // fixup #3: $lanip if (strstr($newstring, "\$lanip")) { $lanip = get_interface_ip("lan"); $newstring = str_replace("\$lanip", $lanip, $newstring); } // fixup #4: fix'r'up here. return $newstring; } function is_timezone($elt) { return !preg_match("/\/$/", $elt); } ?>