summaryrefslogtreecommitdiffstats
path: root/usr/local/www/pkg_edit.php
diff options
context:
space:
mode:
Diffstat (limited to 'usr/local/www/pkg_edit.php')
-rw-r--r--usr/local/www/pkg_edit.php1267
1 files changed, 0 insertions, 1267 deletions
diff --git a/usr/local/www/pkg_edit.php b/usr/local/www/pkg_edit.php
deleted file mode 100644
index 0b01a28..0000000
--- a/usr/local/www/pkg_edit.php
+++ /dev/null
@@ -1,1267 +0,0 @@
-<?php
-/* $Id$ */
-/*
- pkg_edit.php
- Copyright (C) 2013-2015 Electric Sheep Fencing, LP
- Copyright (C) 2004-2012 Scott Ullrich <sullrich@gmail.com>
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-*/
-/*
- pfSense_BUILDER_BINARIES: /sbin/ifconfig
- pfSense_MODULE: pkgs
-*/
-
-##|+PRIV
-##|*IDENT=page-package-edit
-##|*NAME=Package: Edit page
-##|*DESCR=Allow access to the 'Package: Edit' page.
-##|*MATCH=pkg_edit.php*
-##|-PRIV
-
-ini_set('max_execution_time', '0');
-
-require("guiconfig.inc");
-require_once("functions.inc");
-require_once("filter.inc");
-require_once("shaper.inc");
-require_once("pkg-utils.inc");
-
-/* dummy stubs needed by some code that was MFC'd */
-function pfSenseHeader($location) {
- header("Location: " . $location);
-}
-
-function gentitle_pkg($pgname) {
- global $pfSense_config;
- return $pfSense_config['system']['hostname'] . "." . $pfSense_config['system']['domain'] . " - " . $pgname;
-}
-
-function domTT_title($title_msg) {
- if (!empty($title_msg)) {
- $title_msg = preg_replace("/\s+/", " ", $title_msg);
- $title_msg = preg_replace("/'/", "\'", $title_msg);
- return "onmouseout=\"this.style.color = ''; domTT_mouseout(this, event);\" onmouseover=\"domTT_activate(this, event, 'content', '{$title_msg}', 'trail', true, 'delay', 0, 'fade', 'both', 'fadeMax', 93, 'delay', 300, 'styleClass', 'niceTitle');\"";
- }
-}
-
-$xml = htmlspecialchars($_GET['xml']);
-if ($_POST['xml']) {
- $xml = htmlspecialchars($_POST['xml']);
-}
-
-$xml_fullpath = realpath('/usr/local/pkg/' . $xml);
-
-if ($xml == "" || $xml_fullpath === false ||
- substr($xml_fullpath, 0, strlen('/usr/local/pkg/')) != '/usr/local/pkg/') {
- print_info_box_np(gettext("ERROR: No valid package defined."));
- die;
-} else {
- $pkg = parse_xml_config_pkg($xml_fullpath, "packagegui");
-}
-
-if ($pkg['include_file'] <> "") {
- require_once($pkg['include_file']);
-}
-
-if (!isset($pkg['adddeleteeditpagefields'])) {
- $only_edit = true;
-} else {
- $only_edit = false;
-}
-
-$package_name = $pkg['menu'][0]['name'];
-$section = $pkg['menu'][0]['section'];
-$config_path = $pkg['configpath'];
-$name = $pkg['name'];
-$title = $pkg['title'];
-$pgtitle = $title;
-
-$id = $_GET['id'];
-if (isset($_POST['id'])) {
- $id = htmlspecialchars($_POST['id']);
-}
-
-// Not posting? Then user is editing a record. There must be a valid id
-// when editing a record.
-if (!$id && !$_POST) {
- $id = "0";
-}
-
-if (!is_numeric($id)) {
- header("Location: /");
- exit;
-}
-
-if ($pkg['custom_php_global_functions'] <> "") {
- eval($pkg['custom_php_global_functions']);
-}
-
-// grab the installedpackages->package_name section.
-if ($config['installedpackages'] && !is_array($config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config'])) {
- $config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config'] = array();
-}
-
-// If the first entry in the array is an empty <config/> tag, kill it.
-if ($config['installedpackages'] && (count($config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config']) > 0)
- && ($config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config'][0] == "")) {
- array_shift($config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config']);
-}
-
-$a_pkg = &$config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config'];
-
-if ($_GET['savemsg'] <> "") {
- $savemsg = htmlspecialchars($_GET['savemsg']);
-}
-
-if ($pkg['custom_php_command_before_form'] <> "") {
- eval($pkg['custom_php_command_before_form']);
-}
-
-if ($_POST) {
- $firstfield = "";
- $rows = 0;
-
- $input_errors = array();
- $reqfields = array();
- $reqfieldsn = array();
- foreach ($pkg['fields']['field'] as $field) {
- if (($field['type'] == 'input') && isset($field['required'])) {
- if ($field['fieldname']) {
- $reqfields[] = $field['fieldname'];
- }
- if ($field['fielddescr']) {
- $reqfieldsn[] = $field['fielddescr'];
- }
- }
- }
- do_input_validation($_POST, $reqfields, $reqfieldsn, $input_errors);
-
- if ($pkg['custom_php_validation_command']) {
- eval($pkg['custom_php_validation_command']);
- }
-
- if ($_POST['act'] == "del") {
- if ($pkg['custom_delete_php_command']) {
- if ($pkg['custom_php_command_before_form'] <> "") {
- eval($pkg['custom_php_command_before_form']);
- }
- eval($pkg['custom_delete_php_command']);
- }
- write_config($pkg['delete_string']);
- // resync the configuration file code if defined.
- if ($pkg['custom_php_resync_config_command'] <> "") {
- if ($pkg['custom_php_command_before_form'] <> "") {
- eval($pkg['custom_php_command_before_form']);
- }
- eval($pkg['custom_php_resync_config_command']);
- }
- } else {
- if (!$input_errors && $pkg['custom_add_php_command']) {
- if ($pkg['donotsave'] <> "" or $pkg['preoutput'] <> "") {
- ?>
-
-<?php include("head.inc"); ?>
-<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
-<?php include("fbegin.inc"); ?>
-<?php
- }
- if ($pkg['preoutput']) {
- echo "<pre>";
- }
- eval($pkg['custom_add_php_command']);
- if ($pkg['preoutput']) {
- echo "</pre>";
- }
- }
- }
-
- // donotsave is enabled. lets simply exit.
- if (empty($pkg['donotsave'])) {
-
- // store values in xml configuration file.
- if (!$input_errors) {
- $pkgarr = array();
- foreach ($pkg['fields']['field'] as $fields) {
- switch ($fields['type']) {
- case "rowhelper":
- // save rowhelper items.
- #$rowhelpername=($fields['fieldname'] ? $fields['fieldname'] : "row");
- $rowhelpername="row";
- foreach ($fields['rowhelper']['rowhelperfield'] as $rowhelperfield) {
- foreach ($_POST as $key => $value) {
- if (preg_match("/^{$rowhelperfield['fieldname']}(\d+)$/", $key, $matches)) {
- $pkgarr[$rowhelpername][$matches[1]][$rowhelperfield['fieldname']] = $value;
- }
- }
- }
- break;
- default:
- $fieldname = $fields['fieldname'];
- if ($fieldname == "interface_array") {
- $fieldvalue = $_POST[$fieldname];
- } elseif (is_array($_POST[$fieldname])) {
- $fieldvalue = implode(',', $_POST[$fieldname]);
- } else {
- $fieldvalue = trim($_POST[$fieldname]);
- if ($fields['encoding'] == 'base64') {
- $fieldvalue = base64_encode($fieldvalue);
- }
- }
- if ($fieldname) {
- $pkgarr[$fieldname] = $fieldvalue;
- }
- }
- }
-
- if (isset($id) && $a_pkg[$id]) {
- $a_pkg[$id] = $pkgarr;
- } else {
- $a_pkg[] = $pkgarr;
- }
-
- write_config($pkg['addedit_string']);
- // late running code
- if ($pkg['custom_add_php_command_late'] <> "") {
- eval($pkg['custom_add_php_command_late']);
- }
-
- if (isset($pkg['filter_rules_needed'])) {
- filter_configure();
- }
-
- // resync the configuration file code if defined.
- if ($pkg['custom_php_resync_config_command'] <> "") {
- eval($pkg['custom_php_resync_config_command']);
- }
-
- parse_package_templates();
-
- /* if start_command is defined, restart w/ this */
- if ($pkg['start_command'] <> "") {
- exec($pkg['start_command'] . ">/dev/null 2&>1");
- }
-
- /* if restart_command is defined, restart w/ this */
- if ($pkg['restart_command'] <> "") {
- exec($pkg['restart_command'] . ">/dev/null 2&>1");
- }
-
- if ($pkg['aftersaveredirect'] <> "") {
- pfSenseHeader($pkg['aftersaveredirect']);
- } elseif (!$pkg['adddeleteeditpagefields']) {
- pfSenseHeader("pkg_edit.php?xml={$xml}&amp;id=0");
- } elseif (!$pkg['preoutput']) {
- pfSenseHeader("pkg.php?xml=" . $xml);
- }
- exit;
- } else {
- $get_from_post = true;
- }
- } elseif (!$input_errors) {
- exit;
- }
-}
-
-if ($pkg['title'] <> "") {
- $edit = ($only_edit ? '' : ": " . gettext("Edit"));
- $title = $pkg['title'] . $edit;
-} else {
- $title = gettext("Package Editor");
-}
-
-$pgtitle = $title;
-
-if ($pkg['custom_php_after_head_command']) {
- $closehead = false;
- include("head.inc");
- eval($pkg['custom_php_after_head_command']);
- echo "</head>\n";
-} else {
- include("head.inc");
-}
-
-?>
-
-<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
-
-<?php include("fbegin.inc"); ?>
-
-<script type="text/javascript" src="/javascript/autosuggest.js?rev=1"></script>
-<script type="text/javascript" src="/javascript/suggestions.js"></script>
-
-<?php if ($pkg['fields']['field'] <> "") { ?>
-<script type="text/javascript">
-//<![CDATA[
- //Everything inside it will load as soon as the DOM is loaded and before the page contents are loaded
- jQuery(document).ready(function() {
-
- //Sortable function
- jQuery('#mainarea table tbody').sortable({
- items: 'tr.sortable',
- cursor: 'move',
- distance: 10,
- opacity: 0.8,
- helper: function(e, ui) {
- ui.children().each(function() {
- jQuery(this).width(jQuery(this).width());
- });
- return ui;
- },
- });
-
- //delete current line jQuery function
- jQuery('#maintable td .delete').live('click', function() {
- //do not remove first line
- if (jQuery("#maintable tr").length > 2) {
- jQuery(this).parent().parent().remove();
- return false;
- }
- });
-
- //add new line jQuery function
- jQuery('#mainarea table .add').click(function() {
- //get table size and assign as new id
- var c_id=jQuery("#maintable tr").length;
- var new_row=jQuery("table#maintable tr:last").html().replace(/(name|id)="(\w+)(\d+)"/g,"$1='$2"+c_id+"'");
- //apply new id to created line rowhelperid
- jQuery("table#maintable tr:last").after("<tr>"+new_row+"<\/tr>");
- return false;
- });
- // Call enablechange function
- enablechange();
- });
-
- function enablechange() {
- <?php
- foreach ($pkg['fields']['field'] as $field) {
- if (isset($field['enablefields']) or isset($field['checkenablefields'])) {
- echo "\tif (jQuery('form[name=\"iform\"] input[name=\"{$field['fieldname']}\"]').prop('checked') == false) {\n";
-
- if (isset($field['enablefields'])) {
- foreach (explode(',', $field['enablefields']) as $enablefield) {
- echo "\t\tif (jQuery('form[name=\"iform\"] input[name=\"{$enablefield}\"]').length > 0) {\n";
- echo "\t\t\tjQuery('form[name=\"iform\"] input[name=\"{$enablefield}\"]').prop('disabled',true);\n";
- echo "\t\t}\n";
- }
- }
-
- if (isset($field['checkenablefields'])) {
- foreach (explode(',', $field['checkenablefields']) as $checkenablefield) {
- echo "\t\tif (jQuery('form[name=\"iform\"] input[name=\"{$checkenablefield}\"]').length > 0) {\n";
- echo "\t\t\tjQuery('form[name=\"iform\"] input[name=\"{$checkenablefield}\"]').prop('checked',true);\n";
- echo "\t\t}\n";
- }
- }
-
- echo "\t}\n\telse {\n";
-
- if (isset($field['enablefields'])) {
- foreach (explode(',', $field['enablefields']) as $enablefield) {
- echo "\t\tif (jQuery('form[name=\"iform\"] input[name=\"{$enablefield}\"]').length > 0) {\n";
- echo "\t\t\tjQuery('form[name=\"iform\"] input[name=\"{$enablefield}\"]').prop('disabled',false);\n";
- echo "\t\t}\n";
- }
- }
-
- if (isset($field['checkenablefields'])) {
- foreach (explode(',', $field['checkenablefields']) as $checkenablefield) {
- echo "\t\tif (jQuery('form[name=\"iform\"] input[name=\"{$checkenablefield}\"]').length > 0) {\n";
- echo "\t\t\tjQuery('form[name=\"iform\"] input[name=\"{$checkenablefield}\"]').prop('checked',false);\n";
- echo "\t\t}\n";
- }
- }
-
- echo "\t}\n";
- }
- }
- ?>
- }
-//]]>
-</script>
-<?php } ?>
-<script type="text/javascript" src="javascript/domTT/domLib.js"></script>
-<script type="text/javascript" src="javascript/domTT/domTT.js"></script>
-<script type="text/javascript" src="javascript/domTT/behaviour.js"></script>
-<script type="text/javascript" src="javascript/domTT/fadomatic.js"></script>
-<script type="text/javascript" src="/javascript/row_helper_dynamic.js"></script>
-
-<?php if (!empty($input_errors)) print_input_errors($input_errors); ?>
-<form name="iform" action="pkg_edit.php" method="post">
-<input type="hidden" name="xml" value="<?= htmlspecialchars($xml) ?>" />
-<?php if ($savemsg) print_info_box($savemsg); ?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="package edit">
-<?php
-if ($pkg['tabs'] <> "") {
- $tab_array = array();
- foreach ($pkg['tabs']['tab'] as $tab) {
- if ($tab['tab_level']) {
- $tab_level = $tab['tab_level'];
- } else {
- $tab_level = 1;
- }
- if (isset($tab['active'])) {
- $active = true;
- } else {
- $active = false;
- }
- if (isset($tab['no_drop_down'])) {
- $no_drop_down = true;
- }
- $urltmp = "";
- if ($tab['url'] <> "") {
- $urltmp = $tab['url'];
- }
- if ($tab['xml'] <> "") {
- $urltmp = "pkg_edit.php?xml=" . $tab['xml'];
- }
-
- $addresswithport = getenv("HTTP_HOST");
- $colonpos = strpos($addresswithport, ":");
- if ($colonpos !== False) {
- //my url is actually just the IP address of the pfsense box
- $myurl = substr($addresswithport, 0, $colonpos);
- } else {
- $myurl = $addresswithport;
- }
- // eval url so that above $myurl item can be processed if need be.
- $url = str_replace('$myurl', $myurl, $urltmp);
-
- $tab_array[$tab_level][] = array(
- $tab['text'],
- $active,
- $url
- );
- }
-
- ksort($tab_array);
- foreach ($tab_array as $tabid => $tab) {
- echo '<tr><td>';
- display_top_tabs($tab, $no_drop_down, $tabid);
- echo '</td></tr>';
- }
-}
-
-?>
-<tr><td><div id="mainarea"><table id="t" class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
-<?php
- $cols = 0;
- $savevalue = gettext("Save");
- if ($pkg['savetext'] <> "") {
- $savevalue = $pkg['savetext'];
- }
- /* If a package's XML has <advanced_options/> configured, then setup
- * the table rows for the fields that have <advancedfield/> set.
- * These fields will be placed below other fields in a separate area titled 'Advanced Features'.
- * These advanced fields are not normally configured and generally left to default to 'default settings'.
- */
-
- if ($pkg['advanced_options'] == "enabled") {
- $adv_filed_count = 0;
- $advanced = "<td>&nbsp;</td>";
- $advanced .= "<tr><td colspan=\"2\" class=\"listtopic\">". gettext("Advanced features") . "<br /></td></tr>\n";
- }
- foreach ($pkg['fields']['field'] as $pkga) {
- if ($pkga['type'] == "sorting") {
- continue;
- }
-
- if ($pkga['type'] == "listtopic") {
- $input = "<tr id='td_{$pkga['fieldname']}'><td>&nbsp;</td></tr>";
- $input .= "<tr id='tr_{$pkga['fieldname']}'><td colspan=\"2\" class=\"listtopic\">{$pkga['name']}<br /></td></tr>\n";
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $advanced .= $input;
- $adv_filed_count++;
- } else {
- echo $input;
- }
- continue;
- }
-
- if ($pkga['combinefields'] == "begin") {
- $input="<tr valign='top' id='tr_{$pkga['fieldname']}'>";
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $advanced .= $input;
- } else {
- echo $input;
- }
- }
-
- $size = "";
- $colspan="";
- if (isset($pkga['dontdisplayname'])) {
- $input="";
- // If this is in a set of combined fields and;
- // - it is a "begin" (case already handled above) or
- // - usecolspan2 is in effect (so we want to spread all the combined fields horizontally)
- // then we do not want this "tr" to be inserted.
- // Thus only insert the "tr" if the not (!) of the above condition.
- if (!((isset($pkga['combinefields'])) && (($pkga['combinefields'] == "begin") || (isset($pkga['usecolspan2']))))) {
- $input .= "<tr valign='top' id='tr_{$pkga['fieldname']}'>";
- }
- if (isset($pkga['usecolspan2'])) {
- $colspan="colspan='2'";
- } else {
- $input .= "<td width='22%' class='vncell{$req}'>&nbsp;</td>";
- }
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $advanced .= $input;
- $adv_filed_count++;
- } else {
- echo $input;
- }
- } else if (!isset($pkga['placeonbottom'])) {
- unset($req);
- if (isset($pkga['required'])) {
- $req = 'req';
- }
- $input="";
- // If this is in a set of combined fields and;
- // - it is a "begin" (case already handled above) or
- // - usecolspan2 is in effect (so we want to spread all the combined fields horizontally)
- // then we do not want this "tr" to be inserted.
- // Thus only insert the "tr" if the not (!) of the above condition.
- if (!((isset($pkga['combinefields'])) && (($pkga['combinefields'] == "begin") || (isset($pkga['usecolspan2']))))) {
- $input .= "<tr>";
- }
- $input .= "<td valign='top' width=\"22%\" class=\"vncell{$req}\">";
- $input .= fixup_string($pkga['fielddescr']);
- $input .= "</td>";
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $advanced .= $input;
- $adv_filed_count++;
- } else {
- echo $input;
- }
- }
- if ($pkga['combinefields'] == "begin") {
- $input="<td class=\"vncell\"><table summary=\"advanced\"><tr>";
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $advanced .= $input;
- } else {
- echo $input;
- }
- }
-
- $class=(isset($pkga['combinefields']) ? '' : 'class="vtable"');
- if (!isset($pkga['placeonbottom'])) {
- $input="<td valign='top' {$colspan} {$class}>";
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $advanced .= $input;
- $adv_filed_count++;
- } else {
- echo $input;
- }
- }
-
- // if user is editing a record, load in the data.
- $fieldname = $pkga['fieldname'];
- if ($get_from_post) {
- $value = $_POST[$fieldname];
- if (is_array($value)) {
- $value = implode(',', $value);
- }
- } else {
- if (isset($id) && $a_pkg[$id]) {
- $value = $a_pkg[$id][$fieldname];
- } else {
- $value = $pkga['default_value'];
- }
- }
- switch ($pkga['type']) {
- case "input":
- $size = ($pkga['size'] ? " size='{$pkga['size']}' " : "");
- $input = "<input {$size} id='{$pkga['fieldname']}' name='{$pkga['fieldname']}' class='formfld unknown' value=\"" . htmlspecialchars($value) ."\" />\n";
- $input .= "<br />" . fixup_string($pkga['description']) . "\n";
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $js_array[] = $pkga['fieldname'];
- $advanced .= display_advanced_field($pkga['fieldname']).$input ."</div>\n";
- } else {
- echo $input;
- }
- break;
-
- case "password":
- $size = ($pkga['size'] ? " size='{$pkga['size']}' " : "");
- $input = "<input " . $size . " id='" . $pkga['fieldname'] . "' type='password' name='" . $pkga['fieldname'] . "' class='formfld pwd' value=\"" . htmlspecialchars($value) . "\" />\n";
- $input .= "<br />" . fixup_string($pkga['description']) . "\n";
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $js_array[] = $pkga['fieldname'];
- $advanced .= display_advanced_field($pkga['fieldname']).$input ."</div>\n";
- } else {
- echo $input;
- }
- break;
-
- case "info":
- $input = fixup_string($pkga['description']) . "\n";
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $js_array[] = $pkga['fieldname'];
- $advanced .= display_advanced_field($pkga['fieldname']).$input ."</div>\n";
- } else {
- echo $input;
- }
- break;
-
- case "select":
- $fieldname = $pkga['fieldname'];
- if (isset($pkga['multiple'])) {
- $multiple = 'multiple="multiple"';
- $items = explode(',', $value);
- $fieldname .= "[]";
- } else {
- $multiple = '';
- $items = array($value);
- }
- $size = ($pkga['size'] ? " size='{$pkga['size']}' " : "");
- $onchange = (isset($pkga['onchange']) ? "onchange=\"{$pkga['onchange']}\"" : '');
- $input = "<select id='" . $pkga['fieldname'] . "' $multiple $size $onchange name=\"$fieldname\">\n";
- foreach ($pkga['options']['option'] as $opt) {
- $selected = (in_array($opt['value'], $items) ? 'selected="selected"' : '');
- $input .= "\t<option value=\"{$opt['value']}\" {$selected}>{$opt['name']}</option>\n";
- }
- $input .= "</select>\n<br />\n" . fixup_string($pkga['description']) . "\n";
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $js_array[] = $pkga['fieldname'];
- $advanced .= display_advanced_field($pkga['fieldname']).$input;
- $advanced .= "</div>\n";
- } else {
- echo $input;
- }
- break;
-
- case "select_source":
- $fieldname = $pkga['fieldname'];
- if (isset($pkga['multiple'])) {
- $multiple = 'multiple="multiple"';
- $items = explode(',', $value);
- $fieldname .= "[]";
- } else {
- $multiple = '';
- $items = array($value);
- }
- $size = (isset($pkga['size']) ? "size=\"{$pkga['size']}\"" : '');
- $onchange = (isset($pkga['onchange']) ? "onchange=\"{$pkga['onchange']}\"" : '');
- $input = "<select id='{$pkga['fieldname']}' {$multiple} {$size} {$onchange} name=\"{$fieldname}\">\n";
-
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $js_array[] = $pkga['fieldname'];
- $advanced .= display_advanced_field($pkga['fieldname']) .$input;
- $advanced .= "</div>\n";
- } else {
- echo $input;
- }
- $source_url = $pkga['source'];
- eval("\$pkg_source_txt = &$source_url;");
- $input="";
- #check if show disable option is present on xml
- if (isset($pkga['show_disable_value'])) {
- array_push($pkg_source_txt,
- array(($pkga['source_name']? $pkga['source_name'] : $pkga['name'])=> $pkga['show_disable_value'], ($pkga['source_value']? $pkga['source_value'] : $pkga['value'])=> $pkga['show_disable_value']));
- }
- foreach ($pkg_source_txt as $opt) {
- $source_name =($pkga['source_name']? $opt[$pkga['source_name']] : $opt[$pkga['name']]);
- $source_value =($pkga['source_value'] ? $opt[$pkga['source_value']] : $opt[$pkga['value']]);
- $selected = (in_array($source_value, $items)? 'selected="selected"' : '');
- $input .= "\t<option value=\"{$source_value}\" $selected>{$source_name}</option>\n";
- }
- $input .= "</select>\n<br />\n" . fixup_string($pkga['description']) . "\n";
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $advanced .= $input;
- } else {
- echo $input;
- }
- break;
-
- case "vpn_selection" :
- $input = "<select id='{$pkga['fieldname']}' name='{$vpn['name']}'>\n";
- foreach ($config['ipsec']['phase1'] as $vpn) {
- $input .= "\t<option value=\"{$vpn['descr']}\">{$vpn['descr']}</option>\n";
- }
- $input .= "</select>\n";
- $input .= "<br />" . fixup_string($pkga['description']) . "\n";
-
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $js_array[] = $pkga['fieldname'];
- $advanced .= display_advanced_field($pkga['fieldname']).$input;
- $advanced .= "</div>\n";
- } else {
- echo $input;
- }
- break;
-
- case "checkbox":
- $checkboxchecked =($value == "on" ? " checked=\"checked\"" : "");
- $onchange = (isset($pkga['onchange']) ? "onchange=\"{$pkga['onchange']}\"" : '');
- if (isset($pkga['enablefields']) || isset($pkga['checkenablefields'])) {
- $onclick = ' onclick="javascript:enablechange();"';
- }
- $input = "<input id='{$pkga['fieldname']}' type='checkbox' name='{$pkga['fieldname']}' {$checkboxchecked} {$onclick} {$onchange} />\n";
- $input .= "<br />" . fixup_string($pkga['description']) . "\n";
-
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $js_array[] = $pkga['fieldname'];
- $advanced .= display_advanced_field($pkga['fieldname']).$input;
- $advanced .= "</div>\n";
- } else {
- echo $input;
- }
- break;
-
- case "textarea":
- if ($pkga['rows']) {
- $rows = " rows='{$pkga['rows']}' ";
- }
- if ($pkga['cols']) {
- $cols = " cols='{$pkga['cols']}' ";
- }
- if (($pkga['encoding'] == 'base64') && !$get_from_post && !empty($value)) {
- $value = base64_decode($value);
- }
- $wrap =($pkga['wrap'] == "off" ? 'wrap="off" style="white-space:nowrap;"' : '');
- $input = "<textarea {$rows} {$cols} name='{$pkga['fieldname']}'{$wrap}>{$value}</textarea>\n";
- $input .= "<br />" . fixup_string($pkga['description']) . "\n";
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $js_array[] = $pkga['fieldname'];
- $advanced .= display_advanced_field($pkga['fieldname']).$input;
- $advanced .= "</div>\n";
- } else {
- echo $input;
- }
- break;
-
- case "aliases":
- // Use xml tag <typealiases> to filter type aliases
- $size = ($pkga['size'] ? "size=\"{$pkga['size']}\"" : '');
- $fieldname = $pkga['fieldname'];
- $a_aliases = &$config['aliases']['alias'];
- $addrisfirst = 0;
- $aliasesaddr = "";
- $value = "value='{$value}'";
-
- if (isset($a_aliases)) {
- if (!empty($pkga['typealiases'])) {
- foreach ($a_aliases as $alias) {
- if ($alias['type'] == $pkga['typealiases']) {
- if ($addrisfirst == 1) {
- $aliasesaddr .= ",";
- }
- $aliasesaddr .= "'" . $alias['name'] . "'";
- $addrisfirst = 1;
- }
- }
- } else {
- foreach ($a_aliases as $alias) {
- if ($addrisfirst == 1) {
- $aliasesaddr .= ",";
- }
- $aliasesaddr .= "'" . $alias['name'] . "'";
- $addrisfirst = 1;
- }
- }
- }
-
- $input = "<input name='{$fieldname}' type='text' class='formfldalias' id='{$fieldname}' {$size} {$value} />\n<br />";
- $input .= fixup_string($pkga['description']) . "\n";
-
- $script = "<script type='text/javascript'>\n";
- $script .= "//<![CDATA[\n";
- $script .= "var aliasarray = new Array({$aliasesaddr})\n";
- $script .= "var oTextbox1 = new AutoSuggestControl(document.getElementById('{$fieldname}'), new StateSuggestions(aliasarray))\n";
- $script .= "//]]>\n";
- $script .= "</script>";
-
- echo $input;
- echo $script;
- break;
-
- case "interfaces_selection":
- $ips = array();
- $interface_regex=(isset($pkga['hideinterfaceregex']) ? $pkga['hideinterfaceregex'] : "nointerfacestohide");
- if (is_array($config['interfaces'])) {
- foreach ($config['interfaces'] as $iface_key=>$iface_value) {
- if (isset($iface_value['enable']) && !preg_match("/$interface_regex/", $iface_key)) {
- $iface_description=($iface_value['descr'] !="" ? strtoupper($iface_value['descr']) : strtoupper($iface_key));
- if (isset($pkga['showips'])) {
- $iface_description .= " address";
- }
- $ips[] = array('ip'=> $iface_key, 'description'=> $iface_description);
- }
- }
- }
- if (is_array($config['virtualip']) && isset($pkga['showvirtualips'])) {
- foreach ($config['virtualip']['vip'] as $vip) {
- if (!preg_match("/$interface_regex/", $vip['interface'])) {
- $vip_description=($vip['descr'] !="" ? " ({$vip['descr']}) " : " ");
- }
- switch ($vip['mode']) {
- case "ipalias":
- case "carp":
- $ips[] = array('ip' => $vip['subnet'], 'description' => "{$vip['subnet']} $vip_description");
- break;
- case "proxyarp":
- if ($vip['type'] == "network") {
- $start = ip2long32(gen_subnet($vip['subnet'], $vip['subnet_bits']));
- $end = ip2long32(gen_subnet_max($vip['subnet'], $vip['subnet_bits']));
- $len = $end - $start;
- for ($i = 0; $i <= $len; $i++) {
- $ips[]= array('ip' => long2ip32($start+$i), 'description' => long2ip32($start+$i)." from {$vip['subnet']}/{$vip['subnet_bits']} {$vip_description}");
- }
- } else {
- $ips[]= array('ip' => $vip['subnet'], 'description' => "{$vip['subnet']} $vip_description");
- }
- break;
- }
- }
- }
- sort($ips);
- if (isset($pkga['showlistenall'])) {
- array_unshift($ips, array('ip' => 'All', 'description' => 'Listen on All interfaces/ip addresses '));
- }
- if (!preg_match("/$interface_regex/", "loopback")) {
- $iface_description=(isset($pkga['showips']) ? "127.0.0.1 (loopback)" : "loopback");
- array_push($ips, array('ip' => 'lo0', 'description' => $iface_description));
- }
-
- #show interfaces array on gui
- $size = ($pkga['size'] ? "size=\"{$pkga['size']}\"" : '');
- $multiple = '';
- $fieldname = $pkga['fieldname'];
- if (isset($pkga['multiple'])) {
- $fieldname .= '[]';
- $multiple = 'multiple="multiple"';
- }
- $input = "<select id='{$pkga['fieldname']}' name=\"{$fieldname}\" {$size} {$multiple}>\n";
- if (is_array($value)) {
- $values = $value;
- } else {
- $values = explode(',', $value);
- }
- foreach ($ips as $iface) {
- $selected = (in_array($iface['ip'], $values) ? 'selected="selected"' : '');
- $input .= "<option value=\"{$iface['ip']}\" {$selected}>{$iface['description']}</option>\n";
- }
- $input .= "</select>\n<br />" . fixup_string($pkga['description']) . "\n";
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $advanced .= $input;
- } else {
- echo $input;
- }
- break;
-
- case "radio":
- $input = "<input type='radio' id='{$pkga['fieldname']}' name='{$pkga['fieldname']}' value='{$value}' />";
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $advanced .= $input;
- } else {
- echo $input;
- }
- break;
-
- case "button":
- $input = "<input type='submit' id='{$pkga['fieldname']}' name='{$pkga['fieldname']}' class='formbtn' value='{$pkga['fieldname']}' />\n";
- if (isset($pkga['placeonbottom'])) {
- $pkg_buttons .= $input;
- } else {
- echo $input ."\n<br />" . fixup_string($pkga['description']) . "\n";
- }
- break;
-
- case "schedule_selection":
- $input = "<select id='{$pkga['fieldname']}' name='{$pkga['fieldname']}'>\n";
- $schedules = array();
- $schedules[] = "none";
- if (is_array($config['schedules']['schedule'])) {
- foreach ($config['schedules']['schedule'] as $schedule) {
- if ($schedule['name'] <> "") {
- $schedules[] = $schedule['name'];
- }
- }
- }
- foreach ($schedules as $schedule) {
- $selected = ($value == $schedule ? "selected=\"selected\"" : "");
- if ($schedule == "none") {
- $input .= "<option value=\"\" {$selected}>{$schedule}</option>\n";
- } else {
- $input .= "<option value=\"{$schedule}\" {$selected}>{$schedule}</option>\n";
- }
- }
- $input .= "</select>\n<br />\n" . fixup_string($pkga['description']) . "\n";
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $js_array[] = $pkga['fieldname'];
- $advanced .= display_advanced_field($pkga['fieldname']).$input;
- $advanced .= "</div>\n";
- } else {
- echo $input;
- }
- break;
-
- case "rowhelper":
- #$rowhelpername=($fields['fieldname'] ? $fields['fieldname'] : "row");
- $rowhelpername="row";
- ?>
- <script type="text/javascript">
- //<![CDATA[
- <?php
- $rowcounter = 0;
- $fieldcounter = 0;
- foreach ($pkga['rowhelper']['rowhelperfield'] as $rowhelper) {
- echo "rowname[{$fieldcounter}] = \"{$rowhelper['fieldname']}\";\n";
- echo "rowtype[{$fieldcounter}] = \"{$rowhelper['type']}\";\n";
- echo "rowsize[{$fieldcounter}] = \"{$rowhelper['size']}\";\n";
- $fieldcounter++;
- }
- ?>
- //]]>
- </script>
- <table id="maintable" summary="main table">
- <tr id='<?="tr_{$pkga['fieldname']}";?>'>
- <?php
- foreach ($pkga['rowhelper']['rowhelperfield'] as $rowhelper) {
- echo "<td ".domTT_title($rowhelper['description'])."><b>" . fixup_string($rowhelper['fielddescr']) . "</b></td>\n";
- }
-
- $rowcounter = 0;
- $trc = 0;
-
- //Use assigned $a_pkg or create an empty array to enter loop
- if (isset($a_pkg[$id][$rowhelpername])) {
- $saved_rows=$a_pkg[$id][$rowhelpername];
- } else {
- $saved_rows[] = array();
- }
-
- foreach ($saved_rows as $row) {
- echo "</tr>\n<tr class=\"sortable\" id=\"id_{$rowcounter}\">\n";
- foreach ($pkga['rowhelper']['rowhelperfield'] as $rowhelper) {
- unset($value);
- if ($rowhelper['value'] <> "") {
- $value = $rowhelper['value'];
- }
- $fieldname = $rowhelper['fieldname'];
- // if user is editing a record, load in the data.
- if (isset($id) && $a_pkg[$id]) {
- $value = $row[$fieldname];
- }
- $options = "";
- $type = $rowhelper['type'];
- $description = $rowhelper['description'];
- $fieldname = $rowhelper['fieldname'];
- if ($type == "option") {
- $options = &$rowhelper['options']['option'];
- }
- if ($rowhelper['size']) {
- $size = $rowhelper['size'];
- } else if ($pkga['size']) {
- $size = $pkga['size'];
- } else {
- $size = "8";
- }
- display_row($rowcounter, $value, $fieldname, $type, $rowhelper, $size);
-
- $text = "";
- $trc++;
- }
- $rowcounter++;
- echo "<td>";
- #echo "<a onclick=\"removeRow(this); return false;\" href=\"#\"><img border=\"0\" src=\"./themes/".$g['theme']."/images/icons/icon_x.gif\" alt=\"remove\" /></a>";
- echo "<a class='delete' href=\"#\"><img border='0' src='./themes/{$g['theme']}/images/icons/icon_x.gif' alt='delete' /></a>";
- echo "</td>\n";
- }
- ?>
- </tr>
- <tbody></tbody>
- </table>
-
- <!-- <br /><a onclick="javascript:addRowTo('maintable'); return false;" href="#"><img border="0" src="./themes/<?#= $g['theme']; ?>/images/icons/icon_plus.gif" alt="add" /></a>-->
- <br /><a class="add" href="#"><img border="0" src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" alt="add" /></a>
- <br /><?php if ($pkga['description'] != "") echo $pkga['description']; ?>
- <script type="text/javascript">
- //<![CDATA[
- field_counter_js = <?= $fieldcounter ?>;
- rows = <?= $rowcounter ?>;
- totalrows = <?php echo $rowcounter; ?>;
- loaded = <?php echo $rowcounter; ?>;
- //typesel_change();
- //]]>
- </script>
-
- <?php
- break;
- }
- #check typehint value
- if ($pkga['typehint']) {
- echo " " . $pkga['typehint'];
- }
- #check combinefields options
- if (isset($pkga['combinefields'])) {
- // At the end of each combined-fields field we always want to end a td tag.
- $input = "</td>";
- // The tr tag end is used to end the whole set of combined fields,
- // but also if usecolspan2 is not in effect then we also put each combined field in its own tr.
- if (($pkga['combinefields'] == "end") || (!isset($pkga['usecolspan2']))) {
- $input .= "</tr>";
- }
- // At the end of the combined fields we finish up the table that encloses the combined fields...
- if ($pkga['combinefields'] == "end") {
- $input .= "</table></td></tr>";
- }
- } else {
- $input = "</td></tr>";
- if ($pkga['usecolspan2']) {
- $input .= "</tr><br />";
- }
- }
- if (isset($pkga['advancedfield']) && isset($adv_filed_count)) {
- $advanced .= "{$input}\n";
- } else {
- echo "{$input}\n";
- }
- #increment counter
- $i++;
- }
-
- #print advanced settings if any after reading all fields
- if (isset($advanced) && $adv_filed_count > 0) {
- echo $advanced;
- }
-
- ?>
- <tr>
- <td>&nbsp;</td>
- </tr>
- <tr>
- <td width="22%" valign="top">&nbsp;</td>
- <td width="78%">
- <div id="buttons">
- <?php
- if ($pkg['note'] != "") {
- echo "<p><span class=\"red\"><strong>" . gettext("Note") . ":</strong></span> {$pkg['note']}</p>";
- }
- //if (isset($id) && $a_pkg[$id]) // We'll always have a valid ID in our hands
- echo "<input name='id' type='hidden' value=\"" . htmlspecialchars($id) . "\" />";
- echo "<input name='Submit' type='submit' class='formbtn' value=\"" . htmlspecialchars($savevalue) . "\" />\n{$pkg_buttons}\n";
- if (!$only_edit) {
- echo "<input class=\"formbtn\" type=\"button\" value=\"".gettext("Cancel")."\" onclick=\"window.location.href='" . $_SERVER['HTTP_REFERER'] . "'\" />";
- }
- ?>
- </div>
- </td>
- </tr>
-
-</table>
-</div></td></tr>
-</table>
-</form>
-
-<?php if ($pkg['custom_php_after_form_command']) eval($pkg['custom_php_after_form_command']); ?>
-
-<?php
- /* JavaScript to handle the advanced fields. */
- if ($pkg['advanced_options'] == "enabled") {
- echo "<script type=\"text/javascript\">\n";
- echo "//<![CDATA[\n";
- foreach ($js_array as $advfieldname) {
- echo "function show_" . $advfieldname . "() {\n";
- echo "\tjQuery('#showadv_{$advfieldname}').empty();\n";
- echo "\tjQuery('#show_{$advfieldname}').css('display', 'block');\n";
- echo "}\n\n";
- }
- echo "//]]>\n";
- echo "</script>\n";
- }
-?>
-
-<?php include("fend.inc"); ?>
-</body>
-</html>
-
-<?php
-/*
- * ROW Helpers function
- */
-function display_row($trc, $value, $fieldname, $type, $rowhelper, $size) {
- global $text, $config;
- echo "<td>\n";
- switch ($type) {
- case "input":
- echo "<input size='{$size}' name='{$fieldname}{$trc}' id='{$fieldname}{$trc}' class='formfld unknown' value=\"" . htmlspecialchars($value) . "\" />\n";
- break;
- case "checkbox":
- echo "<input size='{$size}' type='checkbox' id='{$fieldname}{$trc}' name='{$fieldname}{$trc}' value='ON' ".($value?"CHECKED":"")." />\n";
- break;
- case "password":
- echo "<input size='{$size}' type='password' id='{$fieldname}{$trc}' name='{$fieldname}{$trc}' class='formfld pwd' value=\"" . htmlspecialchars($value) . "\" />\n";
- break;
- case "textarea":
- echo "<textarea rows='2' cols='12' id='{$fieldname}{$trc}' class='formfld unknown' name='{$fieldname}{$trc}'>{$value}</textarea>\n";
- case "select":
- echo "<select style='height:22px;' id='{$fieldname}{$trc}' name='{$fieldname}{$trc}' {$title}>\n";
- foreach ($rowhelper['options']['option'] as $rowopt) {
- $text .= "<option value='{$rowopt['value']}'>{$rowopt['name']}</option>";
- echo "<option value='{$rowopt['value']}'".($rowopt['value'] == $value?" selected=\"selected\"":"").">{$rowopt['name']}</option>\n";
- }
- echo "</select>\n";
- break;
- case "interfaces_selection":
- $size = ($size ? "size=\"{$size}\"" : '');
- $multiple = '';
- if (isset($rowhelper['multiple'])) {
- $fieldname .= '[]';
- $multiple = "multiple=\"multiple\"";
- }
- echo "<select style='height:22px;' id='{$fieldname}{$trc}' name='{$fieldname}{$trc}' {$size} {$multiple}>\n";
- $ifaces = get_configured_interface_with_descr();
- $additional_ifaces = $rowhelper['add_to_interfaces_selection'];
- if (!empty($additional_ifaces)) {
- $ifaces = array_merge($ifaces, explode(',', $additional_ifaces));
- }
- if (is_array($value)) {
- $values = $value;
- } else {
- $values = explode(',', $value);
- }
- $ifaces["lo0"] = "loopback";
- echo "<option><name></name><value></value></option>/n";
- foreach ($ifaces as $ifname => $iface) {
- $text .="<option value=\"{$ifname}\">$iface</option>";
- echo "<option value=\"{$ifname}\" ".(in_array($ifname, $values) ? 'selected="selected"' : '').">{$iface}</option>\n";
- }
- echo "</select>\n";
- break;
- case "select_source":
- echo "<select style='height:22px;' id='{$fieldname}{$trc}' name='{$fieldname}{$trc}'>\n";
- if (isset($rowhelper['show_disable_value'])) {
- echo "<option value='{$rowhelper['show_disable_value']}'>{$rowhelper['show_disable_value']}</option>\n";
- }
- $source_url = $rowhelper['source'];
- eval("\$pkg_source_txt = &$source_url;");
- foreach ($pkg_source_txt as $opt) {
- $source_name = ($rowhelper['source_name'] ? $opt[$rowhelper['source_name']] : $opt[$rowhelper['name']]);
- $source_value = ($rowhelper['source_value'] ? $opt[$rowhelper['source_value']] : $opt[$rowhelper['value']]);
- $text .= "<option value='{$source_value}'>{$source_name}</option>";
- echo "<option value='{$source_value}'".($source_value == $value?" selected=\"selected\"":"").">{$source_name}</option>\n";
- }
- echo "</select>\n";
- break;
- }
- echo "</td>\n";
-}
-
-function fixup_string($string) {
- global $config;
- // fixup #1: $myurl -> http[s]://ip_address:port/
- $https = "";
- $port = $config['system']['webguiport'];
- if ($port <> "443" and $port <> "80") {
- $urlport = ":" . $port;
- } else {
- $urlport = "";
- }
-
- if ($config['system']['webgui']['protocol'] == "https") {
- $https = "s";
- }
- $myurl = "http" . $https . "://" . getenv("HTTP_HOST") . $urlport;
- $newstring = str_replace("\$myurl", $myurl, $string);
- $string = $newstring;
- // fixup #2: $wanip
- $curwanip = get_interface_ip();
- $newstring = str_replace("\$wanip", $curwanip, $string);
- $string = $newstring;
- // fixup #3: $lanip
- $lancfg = $config['interfaces']['lan'];
- $lanip = $lancfg['ipaddr'];
- $newstring = str_replace("\$lanip", $lanip, $string);
- $string = $newstring;
- // fixup #4: fix'r'up here.
- return $newstring;
-}
-
-/*
- * Parse templates if they are defined
- */
-function parse_package_templates() {
- global $pkg, $config;
- $rows = 0;
- if ($pkg['templates']['template'] <> "") {
- foreach ($pkg['templates']['template'] as $pkg_template_row) {
- $filename = $pkg_template_row['filename'];
- $template_text = $pkg_template_row['templatecontents'];
- $firstfield = "";
- /* calculate total row helpers count and */
- /* change fields defined as fieldname_fieldvalue to their value */
- foreach ($pkg['fields']['field'] as $fields) {
- switch ($fields['type']) {
- case "rowhelper":
- // save rowhelper items.
- $row_helper_total_rows = 0;
- $row_helper_data = "";
- foreach ($fields['rowhelper']['rowhelperfield'] as $rowhelperfield) {
- foreach ($_POST as $key => $value) {
- if (preg_match("/^{$rowhelperfield['fieldname']}(\d+)$/", $key, $matches)) {
- $row_helper_total_rows++;
- $row_helper_data .= $value;
- $sep = "";
- ereg($rowhelperfield['fieldname'] . "_fieldvalue\[(.*)\]", $template_text, $sep);
- foreach ($sep as $se) {
- $separator = $se;
- }
- if ($separator <> "") {
- $row_helper_data = ereg_replace(" ", $separator, $row_helper_data);
- $template_text = ereg_replace("\[{$separator}\]", "", $template_text);
- }
- $template_text = str_replace($rowhelperfield['fieldname'] . "_fieldvalue", $row_helper_data, $template_text);
- }
- }
- }
- break;
- default:
- $fieldname = $fields['fieldname'];
- $fieldvalue = $_POST[$fieldname];
- $template_text = str_replace($fieldname . "_fieldvalue", $fieldvalue, $template_text);
- }
- }
- /* replace $domain_total_rows with total rows */
- $template_text = str_replace("$domain_total_rows", $row_helper_total_rows, $template_text);
-
- /* replace cr's */
- $template_text = str_replace("\\n", "\n", $template_text);
-
- /* write out new template file */
- $fout = fopen($filename, "w");
- fwrite($fout, $template_text);
- fclose($fout);
- }
- }
-}
-
-/* Return html div fields */
-function display_advanced_field($fieldname) {
- $div = "<div id='showadv_{$fieldname}'>\n";
- $div .= "<input type='button' onclick='show_{$fieldname}()' value='" . gettext("Advanced") . "' /> - " . gettext("Show advanced option") ."</div>\n";
- $div .= "<div id='show_{$fieldname}' style='display:none'>\n";
- return $div;
-}
-
-?>
OpenPOWER on IntegriCloud