Project

General

Profile

Download (33.4 KB) Statistics
| Branch: | Tag: | Revision:
1 658292ef Scott Ullrich
<?php
2 b46bfcf5 Bill Marquette
/* $Id$ */
3 658292ef Scott Ullrich
/*
4 57333fa0 Scott Ullrich
    wizard.php
5 658292ef Scott Ullrich
    Copyright (C) 2004 Scott Ullrich
6 a3db8d75 Ermal
    Copyright (C) 2010 Ermal Lu?i
7 658292ef Scott Ullrich
    All rights reserved.
8
9
    Redistribution and use in source and binary forms, with or without
10
    modification, are permitted provided that the following conditions are met:
11
12
    1. Redistributions of source code must retain the above copyright notice,
13
       this list of conditions and the following disclaimer.
14
15
    2. Redistributions in binary form must reproduce the above copyright
16
       notice, this list of conditions and the following disclaimer in the
17
       documentation and/or other materials provided with the distribution.
18
19
    THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
20
    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
21
    AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22
    AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
23
    OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24
    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25
    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26
    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27
    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
    POSSIBILITY OF SUCH DAMAGE.
29
*/
30
31 6b07c15a Matthew Grooms
##|+PRIV
32
##|*IDENT=page-pfsensewizardsubsystem
33
##|*NAME=pfSense wizard subsystem page
34
##|*DESCR=Allow access to the 'pfSense wizard subsystem' page.
35
##|*MATCH=wizard.php*
36
##|-PRIV
37
38
39 fe4fc20b Renato Botelho
require("globals.inc");
40 658292ef Scott Ullrich
require("guiconfig.inc");
41 f9fc88cc sullrich
require("functions.inc");
42
require("filter.inc");
43
require("shaper.inc");
44
require("rrd.inc");
45 658292ef Scott Ullrich
46
function gentitle_pkg($pgname) {
47 2fbd6806 Scott Ullrich
	global $config;
48
	return $config['system']['hostname'] . "." . $config['system']['domain'] . " - " . $pgname;
49 658292ef Scott Ullrich
}
50
51 fe4fc20b Renato Botelho
global $g;
52
53 d8c1a6c5 Scott Ullrich
$stepid = htmlspecialchars($_GET['stepid']);
54 658292ef Scott Ullrich
if (isset($_POST['stepid']))
55 d8c1a6c5 Scott Ullrich
    $stepid = htmlspecialchars($_POST['stepid']);
56 72a5f424 Ermal Lu?i
if (!$stepid)
57
	$stepid = "0";
58 658292ef Scott Ullrich
59 d8c1a6c5 Scott Ullrich
$xml = htmlspecialchars($_GET['xml']);
60 5a8a69b3 Ermal Lu?i
if($_POST['xml'])
61
	$xml = htmlspecialchars($_POST['xml']);
62 658292ef Scott Ullrich
63 5a8a69b3 Ermal Lu?i
if(empty($xml)) {
64 bb0c9569 Bill Marquette
	$xml = "not_defined";
65 185b9fbd Renato Botelho
	print_info_box_np(sprintf(gettext("ERROR:  Could not open %s."), $xml));
66 bb0c9569 Bill Marquette
	die;
67 658292ef Scott Ullrich
} else {
68 bd31336e Scott Ullrich
	if (file_exists("{$g['www_path']}/wizards/{$xml}"))
69 fc19d371 Scott Ullrich
		$pkg = parse_xml_config_pkg("{$g['www_path']}/wizards/" . $xml, "pfsensewizard");
70 bb0c9569 Bill Marquette
	else {
71 185b9fbd Renato Botelho
		print_info_box_np(sprintf(gettext("ERROR:  Could not open %s."), $xml));
72 bb0c9569 Bill Marquette
		die;
73
	}
74 658292ef Scott Ullrich
}
75
76 5a8a69b3 Ermal Lu?i
if (!is_array($pkg)) {
77 3a3fb8ea Erik Fonnesbeck
	print_info_box_np(sprintf(gettext("ERROR: Could not parse %s/wizards/%s file."),$g['www_path'],$xml));
78 5a8a69b3 Ermal Lu?i
	die;
79
}
80
81 fe4fc20b Renato Botelho
$title       = preg_replace("/pfSense/i", $g['product_name'], $pkg['step'][$stepid]['title']);
82
$description = preg_replace("/pfSense/i", $g['product_name'], $pkg['step'][$stepid]['description']);
83
$totalsteps  = $pkg['totalsteps'];
84 658292ef Scott Ullrich
85 2ca50c87 Ermal Lu?i
if ($pkg['includefile'])
86
        require_once($pkg['includefile']);
87
88 b3f4e57c Scott Ullrich
if ($pkg['step'][$stepid]['includefile'])
89 5a8a69b3 Ermal Lu?i
	require_once($pkg['step'][$stepid]['includefile']);
90 b3f4e57c Scott Ullrich
91 e1e7a425 Scott Ullrich
if($pkg['step'][$stepid]['stepsubmitbeforesave']) {
92 a314bebc Ermal
	eval($pkg['step'][$stepid]['stepsubmitbeforesave']);
93 e1e7a425 Scott Ullrich
}
94
95 27319e17 jim-p
if ($_POST && !$input_errors) {
96 e48fc17d Scott Ullrich
    foreach ($pkg['step'][$stepid]['fields']['field'] as $field) {
97 ba9e9bbf Ermal Lu?i
        if(!empty($field['bindstofield']) and $field['type'] <> "submit") {
98 e48fc17d Scott Ullrich
		$fieldname = $field['name'];
99 72a5f424 Ermal Lu?i
		$fieldname = str_replace(" ", "", $fieldname);
100 e48fc17d Scott Ullrich
		$fieldname = strtolower($fieldname);
101
		// update field with posted values.
102 ba9e9bbf Ermal Lu?i
                if($field['unsetfield'] <> "")
103
			$unset_fields = "yes";
104
		else
105
			$unset_fields = "";
106
		if($field['arraynum'] <> "")
107
			$arraynum = $field['arraynum'];
108
		else
109
			$arraynum = "";
110 72a5f424 Ermal Lu?i
111
		update_config_field( $field['bindstofield'], $_POST[$fieldname], $unset_fields, $arraynum, $field['type']);
112 658292ef Scott Ullrich
        }
113 3ed807e4 Scott Ullrich
114 2fbd6806 Scott Ullrich
    }
115 3ed807e4 Scott Ullrich
    // run custom php code embedded in xml config.
116
    if($pkg['step'][$stepid]['stepsubmitphpaction'] <> "") {
117
		eval($pkg['step'][$stepid]['stepsubmitphpaction']);
118
    }
119 27319e17 jim-p
	if (!$input_errors)
120
		write_config();
121 e48fc17d Scott Ullrich
    $stepid++;
122 72a5f424 Ermal Lu?i
    if($stepid > $totalsteps)
123
	$stepid = $totalsteps;
124 658292ef Scott Ullrich
}
125
126 3f83de3d Scott Ullrich
function update_config_field($field, $updatetext, $unset, $arraynum, $field_type) {
127 eb20f3c5 Ermal Lu?i
	global $config;
128 e48fc17d Scott Ullrich
	$field_split = split("->",$field);
129 72a5f424 Ermal Lu?i
	foreach ($field_split as $f)
130
		$field_conv .= "['" . $f . "']";
131
	if($field_conv == "")
132
		return;
133 a4f07557 Ermal
	if ($arraynum <> "")
134 ddc75a80 Ermal
		$field_conv .= "[" . $arraynum . "]";
135 72a5f424 Ermal Lu?i
	if(($field_type == "checkbox" and $updatetext <> "on") || $updatetext == "") {
136 3f83de3d Scott Ullrich
		/*
137 a4f07557 Ermal
		 * item is a checkbox, it should have the value "on"
138
		 * if it was checked
139
                 */
140 b4eb3a17 jim-p
		$var = "\$config{$field_conv}";
141
		$text = "if (isset({$var})) unset({$var});";
142 3f83de3d Scott Ullrich
		eval($text);
143
		return;
144 496f9155 Scott Ullrich
	}
145 e881d1f3 Scott Ullrich
146 496f9155 Scott Ullrich
	if($field_type == "interfaces_selection") {
147 b4eb3a17 jim-p
		$var = "\$config{$field_conv}";
148
		$text = "if (isset({$var})) unset({$var});";
149 389c778e gnhb
		$text .= "\$config" . $field_conv . " = \"" . $updatetext . "\";";
150 496f9155 Scott Ullrich
		eval($text);
151
		return;
152
	}
153 e881d1f3 Scott Ullrich
154 ddc75a80 Ermal
	if($unset == "yes") {
155 e48fc17d Scott Ullrich
		$text = "unset(\$config" . $field_conv . ");";
156
		eval($text);
157
	}
158 a4f07557 Ermal
	$text = "\$config" . $field_conv . " = \"" . $updatetext . "\";";
159
	eval($text);
160 658292ef Scott Ullrich
}
161
162 42f1649f Erik Fonnesbeck
$title       = preg_replace("/pfSense/i", $g['product_name'], $pkg['step'][$stepid]['title']);
163
$description = preg_replace("/pfSense/i", $g['product_name'], $pkg['step'][$stepid]['description']);
164
165 a314bebc Ermal
// handle before form display event.
166
do {
167
	$oldstepid = $stepid;
168
	if($pkg['step'][$stepid]['stepbeforeformdisplay'] <> "")
169
		eval($pkg['step'][$stepid]['stepbeforeformdisplay']);
170
} while ($oldstepid != $stepid);
171 34b5c5a0 Scott Ullrich
172 d88c6a9f Scott Ullrich
$pgtitle = array($title);
173 4df96eff Scott Ullrich
include("head.inc");
174 6bb5c9aa Bill Marquette
175 4df96eff Scott Ullrich
?>
176 1ae55320 Ermal
<body link="#0000CC" vlink="#0000CC" alink="#0000CC" >
177 8c01d3bb Scott Ullrich
<?php
178 94017670 Ermal
179 ba21539c Scott Ullrich
	if(file_exists("/usr/local/www/themes/{$g['theme']}/wizard.css")) 
180 8c01d3bb Scott Ullrich
		echo "<link rel=\"stylesheet\" href=\"/themes/{$g['theme']}/wizard.css\" media=\"all\" />\n";
181 4e3391a3 Scott Ullrich
	else 
182
		echo "<link rel=\"stylesheet\" href=\"/themes/{$g['theme']}/all.css\" media=\"all\" />";
183 8c01d3bb Scott Ullrich
?>
184
185 33a56b27 Colin Smith
<?php if($pkg['step'][$stepid]['fields']['field'] <> "") { ?>
186 44c10295 Scott Ullrich
<script type="text/javascript">
187 f9e35766 Scott Ullrich
<!--
188 38e7d556 Scott Ullrich
189 e881d1f3 Scott Ullrich
function  FieldValidate(userinput,  regexp,  message)
190
{
191 2465ff5b Ermal
	if(!userinput.match(regexp))
192
		alert(message);
193 e881d1f3 Scott Ullrich
}
194 38e7d556 Scott Ullrich
195 33a56b27 Colin Smith
function enablechange() {
196
<?php
197
        foreach($pkg['step'][$stepid]['fields']['field'] as $field) {
198
                if(isset($field['enablefields']) or isset($field['checkenablefields'])) {
199 ba374e4b Ermal
                        print "\t" . 'if (document.iform.' . strtolower($field['name']) . '.checked) {' . "\n";
200 33a56b27 Colin Smith
                        if(isset($field['enablefields'])) {
201
                                $enablefields = explode(',', $field['enablefields']);
202
                                foreach($enablefields as $enablefield) {
203
                                        $enablefield = strtolower($enablefield);
204 b554f7bf Ermal
                                        print "\t\t" . 'document.iform.' . $enablefield . '.disabled = 0;' . "\n";
205 33a56b27 Colin Smith
                                }
206
                        }
207
                        if(isset($field['checkenablefields'])) {
208
                                $checkenablefields = explode(',', $field['checkenablefields']);
209
                                foreach($checkenablefields as $checkenablefield) {
210
                                        $checkenablefield = strtolower($checkenablefield);
211
                                        print "\t\t" . 'document.iform.' . $checkenablefield . '.checked = 0;' . "\n";
212
                                }
213
                        }
214
                        print "\t" . '} else {' . "\n";
215
                        if(isset($field['enablefields'])) {
216 2465ff5b Ermal
                                $enablefields = explode(',', $field['enablefields']);
217 33a56b27 Colin Smith
                                foreach($enablefields as $enablefield) {
218
                                        $enablefield = strtolower($enablefield);
219 b554f7bf Ermal
                                        print "\t\t" . 'document.iform.' . $enablefield . '.disabled = 1;' . "\n";
220 33a56b27 Colin Smith
                                }
221
                        }
222
                        if(isset($field['checkenablefields'])) {
223 2465ff5b Ermal
                                $checkenablefields = explode(',', $field['checkenablefields']);
224 33a56b27 Colin Smith
                                foreach($checkenablefields as $checkenablefield) {
225
                                        $checkenablefield = strtolower($checkenablefield);
226
                                        print "\t\t" . 'document.iform.' . $checkenablefield . '.checked = 1;' . "\n";
227
                                }
228 e881d1f3 Scott Ullrich
                        }
229 33a56b27 Colin Smith
                        print "\t" . '}' . "\n";
230
                }
231
        }
232
?>
233 6bb5c9aa Bill Marquette
}
234 2465ff5b Ermal
235 1ae55320 Ermal
function disablechange() {
236
<?php
237
        foreach($pkg['step'][$stepid]['fields']['field'] as $field) {
238
                if(isset($field['disablefields']) or isset($field['checkdisablefields'])) {
239
                        print "\t" . 'if (document.iform.' . strtolower($field['name']) . '.checked) {' . "\n";
240
                        if(isset($field['disablefields'])) {
241
                                $enablefields = explode(',', $field['disablefields']);
242
                                foreach($enablefields as $enablefield) {
243
                                        $enablefield = strtolower($enablefield);
244
                                        print "\t\t" . 'document.iform.' . $enablefield . '.disabled = 1;' . "\n";
245
                                }
246
                        }
247
                        if(isset($field['checkdisablefields'])) {
248
                                $checkenablefields = explode(',', $field['checkdisablefields']);
249
                                foreach($checkenablefields as $checkenablefield) {
250
                                        $checkenablefield = strtolower($checkenablefield);
251 b554f7bf Ermal
                                        print "\t\t" . 'document.iform.' . $checkenablefield . '.checked = 1;' . "\n";
252 1ae55320 Ermal
                                }
253
                        }
254
                        print "\t" . '} else {' . "\n";
255
                        if(isset($field['disablefields'])) {
256
                                $enablefields = explode(',', $field['disablefields']);
257
                                foreach($enablefields as $enablefield) {
258
                                        $enablefield = strtolower($enablefield);
259
                                        print "\t\t" . 'document.iform.' . $enablefield . '.disabled = 0;' . "\n";
260
                                }
261
                        }
262
                        if(isset($field['checkdisablefields'])) {
263
                                $checkenablefields = explode(',', $field['checkdisablefields']);
264
                                foreach($checkenablefields as $checkenablefield) {
265
                                        $checkenablefield = strtolower($checkenablefield);
266 b554f7bf Ermal
                                        print "\t\t" . 'document.iform.' . $checkenablefield . '.checked = 0;' . "\n";
267 1ae55320 Ermal
                                }
268
                        }
269
                        print "\t" . '}' . "\n";
270
                }
271
        }
272
?>
273
}
274
275 2465ff5b Ermal
function showchange() {
276
<?php
277
        foreach($pkg['step'][$stepid]['fields']['field'] as $field) {
278 1ae55320 Ermal
                if(isset($field['showfields'])) {
279 2465ff5b Ermal
                        print "\t" . 'if (document.iform.' . strtolower($field['name']) . '.checked == false) {' . "\n";
280
                        if(isset($field['showfields'])) {
281
                                $showfields = explode(',', $field['showfields']);
282
                                foreach($showfields as $showfield) {
283
                                        $showfield = strtolower($showfield);
284 1ae55320 Ermal
                                        //print "\t\t" . 'document.iform.' . $showfield . ".display =\"none\";\n";
285
					print "\t\t \$('". $showfield . "').hide();";
286 2465ff5b Ermal
                                }
287
                        }
288
                        print "\t" . '} else {' . "\n";
289
                        if(isset($field['showfields'])) {
290
                                $showfields = explode(',', $field['showfields']);
291
                                foreach($showfields as $showfield) {
292
                                        $showfield = strtolower($showfield);
293 1ae55320 Ermal
                                        #print "\t\t" . 'document.iform.' . $showfield . ".display =\"\";\n";
294
					print "\t\t \$('". $showfield . "').show();";
295 2465ff5b Ermal
                                }
296
                        }
297
                        print "\t" . '}' . "\n";
298
                }
299
	}
300
?>
301
}
302 6bb5c9aa Bill Marquette
//-->
303
</script>
304 33a56b27 Colin Smith
<?php } ?>
305 6bb5c9aa Bill Marquette
306 33a56b27 Colin Smith
<form action="wizard.php" method="post" name="iform" id="iform">
307 658292ef Scott Ullrich
<input type="hidden" name="xml" value="<?= $xml ?>">
308 e48fc17d Scott Ullrich
<input type="hidden" name="stepid" value="<?= $stepid ?>">
309 658292ef Scott Ullrich
310 e48fc17d Scott Ullrich
<center>
311
312
&nbsp;<br>
313 1c3d61fe Scott Ullrich
314 fe2bfbfc Scott Ullrich
<?php
315 1c3d61fe Scott Ullrich
	if($title == "Reload in progress") {
316 3f394d09 Erik Fonnesbeck
		$ip = fixup_string("\$myurl");
317 1c3d61fe Scott Ullrich
	} else {
318 fe2bfbfc Scott Ullrich
		$ip = "/";
319 1c3d61fe Scott Ullrich
	}
320 2576dace Ermal Luçi
	echo "<a href='$ip'>";
321 fe2bfbfc Scott Ullrich
?>
322 1c3d61fe Scott Ullrich
<img border="0" src="./themes/<?= $g['theme']; ?>/images/logo.gif"></a>
323 d51f86e0 Scott Ullrich
<p>
324 b7bb1711 Ermal Lu?i
<div style="width:800px;background-color:#ffffff" id="roundme">
325 55b8d602 Scott Ullrich
<?php
326 27319e17 jim-p
	if ($input_errors)
327
		print_input_errors($input_errors);
328 eb20f3c5 Ermal Lu?i
	if ($savemsg)
329
		print_info_box($savemsg);
330 55b8d602 Scott Ullrich
	if ($_GET['message'] != "")
331 d8c1a6c5 Scott Ullrich
		print_info_box(htmlspecialchars($_GET['message']));
332 55b8d602 Scott Ullrich
	if ($_POST['message'] != "")
333 d8c1a6c5 Scott Ullrich
		print_info_box(htmlspecialchars($_POST['message']));
334 94017670 Ermal
?>
335
<table bgcolor="#ffffff" width="95%" border="0" cellspacing="0" cellpadding="2">
336
    <!-- wizard goes here -->
337
    <tr><td>&nbsp;</td></tr>
338 b7bb1711 Ermal Lu?i
 <tr>
339
	<td class="tabcont">
340
	<table width="100%" border="0" cellpadding="6" cellspacing="0">
341
342
    <tr><td colspan='2'><center><font size="2"><b><?= fixup_string($description) ?></b></font></center></td></tr><tr><td>&nbsp;</td></tr>
343 34b5c5a0 Scott Ullrich
    <?php
344
	if(!$pkg['step'][$stepid]['disableheader'])
345 d51f86e0 Scott Ullrich
		echo "<tr><td colspan=\"2\" class=\"listtopic\">" . fixup_string($title) . "</td></tr>";
346 34b5c5a0 Scott Ullrich
    ?>
347
348
    <?php
349 44c10295 Scott Ullrich
	$inputaliases = array();
350 34b5c5a0 Scott Ullrich
	if($pkg['step'][$stepid]['fields']['field'] <> "") {
351
		foreach ($pkg['step'][$stepid]['fields']['field'] as $field) {
352
353
		    $value = $field['value'];
354 2fbd6806 Scott Ullrich
		    $name  = $field['name'];
355 658292ef Scott Ullrich
356 2fbd6806 Scott Ullrich
		    $name = ereg_replace(" ", "", $name);
357
		    $name = strtolower($name);
358 658292ef Scott Ullrich
359 a8df0181 Scott Ullrich
		    if($field['bindstofield'] <> "") {
360 b1919dd0 Scott Ullrich
				$arraynum = "";
361
				$field_conv = "";
362
				$field_split = split("->", $field['bindstofield']);
363
				// arraynum is used in cases where there is an array of the same field
364
				// name such as dnsserver (2 of them)
365 a314bebc Ermal
				if($field['arraynum'] <> "")
366
					$arraynum = "[" . $field['arraynum'] . "]";
367
				foreach ($field_split as $f)
368
					$field_conv .= "['" . $f . "']";
369 60ce86ea Erik Fonnesbeck
				if($field['type'] == "checkbox")
370
					$toeval = "if (isset(\$config" . $field_conv . $arraynum . ")) { \$value = \$config" . $field_conv . $arraynum . "; if (empty(\$value)) \$value = true; }";
371
				else
372
					$toeval = "if (isset(\$config" . $field_conv . $arraynum . ")) \$value = \$config" . $field_conv . $arraynum . ";";
373 a314bebc Ermal
				eval($toeval);
374 a8df0181 Scott Ullrich
		    }
375
376 34b5c5a0 Scott Ullrich
		    if(!$field['combinefieldsend'])
377
			echo "<tr>";
378
379 b7bb1711 Ermal Lu?i
		    switch ($field['type']) {
380
		    case "input":
381 7a29f783 Ermal Lu?i
			if ($field['displayname']) {
382
				echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
383 8984dc5e Ermal
				echo $field['displayname'];
384
				echo ":</td>\n";
385 7a29f783 Ermal Lu?i
			} else if(!$field['dontdisplayname']) {
386 34b5c5a0 Scott Ullrich
				echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
387 d51f86e0 Scott Ullrich
				echo fixup_string($field['name']);
388 34b5c5a0 Scott Ullrich
				echo ":</td>\n";
389
			}
390
			if(!$field['dontcombinecells'])
391
				echo "<td class=\"vtable\">\n";
392 6bb5c9aa Bill Marquette
393 66f773b4 Ermal Lu?i
			echo "<input class='formfld unknown' id='" . $name . "' name='" . $name . "' value='" . $value . "'";
394
			if($field['size'])
395
				echo " size='" . $field['size'] . "' ";
396 6bb5c9aa Bill Marquette
			if($field['validate'])
397
				echo " onChange='FieldValidate(this.value, \"{$field['validate']}\", \"{$field['message']}\");'";
398
			echo ">\n";
399 62a48760 Scott Ullrich
400 66f773b4 Ermal Lu?i
			if($field['description'] <> "") {
401
				echo "<br /> " . $field['description'];
402
		    	}
403 b7bb1711 Ermal Lu?i
			break;
404
		    case "text":
405 66f773b4 Ermal Lu?i
			echo "<td colspan=\"2\" align=\"center\" class=\"vncell\">\n";
406
			if($field['description'] <> "") {
407 b7bb1711 Ermal Lu?i
                                echo "<center><br /> " . $field['description'] . "</center>";
408 66f773b4 Ermal Lu?i
                        }
409 b7bb1711 Ermal Lu?i
			break;
410
		    case "inputalias":
411 7a29f783 Ermal Lu?i
			if ($field['displayname']) {
412
                                echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
413 d6f53204 Ermal Lu?i
                                echo $field['displayname'];
414 7a29f783 Ermal Lu?i
                                echo ":</td>\n";
415
			} else if(!$field['dontdisplayname']) {
416 62a48760 Scott Ullrich
				echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
417
				echo fixup_string($field['name']);
418
				echo ":</td>\n";
419
			}
420
			if(!$field['dontcombinecells'])
421
				echo "<td class=\"vtable\">\n";
422
423 40050fab Ermal
			$inputaliases[] = $name;
424
			echo "<input class='formfldalias' autocomplete='off' class='formfldalias' id='" . $name . "' name='" . $name . "' value='" . $value . "'";
425 66f773b4 Ermal Lu?i
			if($field['size'])
426
				echo " size='" . $field['size'] . "' ";
427 62a48760 Scott Ullrich
			if($field['validate'])
428
				echo " onChange='FieldValidate(this.value, \"{$field['validate']}\", \"{$field['message']}\");'";
429 e881d1f3 Scott Ullrich
			echo ">\n";
430
431 66f773b4 Ermal Lu?i
			if($field['description'] <> "") {
432
				echo "<br /> " . $field['description'];
433
		    	}
434 b7bb1711 Ermal Lu?i
			break;
435
		    case "interfaces_selection":
436 389c778e gnhb
		    case "interface_select":
437 496f9155 Scott Ullrich
			$size = "";
438
			$multiple = "";
439
			$name = strtolower($name);
440
			echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
441 7a29f783 Ermal Lu?i
			echo fixup_string($field['displayname'] ? $field['displayname'] : $field['name']) . ":\n";
442 496f9155 Scott Ullrich
			echo "</td>";
443
			echo "<td class=\"vtable\">\n";
444 7b4710f9 Scott Ullrich
			if($field['size'] <> "") $size = "size=\"{$field['size']}\"";
445 496f9155 Scott Ullrich
			if($field['multiple'] <> "" and $field['multiple'] <> "0") {
446 7b4710f9 Scott Ullrich
			  $multiple = "multiple=\"multiple\"";
447 496f9155 Scott Ullrich
			  $name .= "[]";
448
			}
449 66f773b4 Ermal Lu?i
			echo "<select class='formselect' id='{$name}' name='{$name}' {$size} {$multiple}>\n";
450 496f9155 Scott Ullrich
			if($field['add_to_interfaces_selection'] <> "") {
451
				$SELECTED = "";
452
				if($field['add_to_interfaces_selection'] == $value) $SELECTED = " SELECTED";
453
				echo "<option value='" . $field['add_to_interfaces_selection'] . "'" . $SELECTED . ">" . $field['add_to_interfaces_selection'] . "</option>\n";
454
			}
455 389c778e gnhb
			if($field['type'] == "interface_select")
456
				$interfaces = get_interface_list();
457
			else
458
				$interfaces = get_configured_interface_with_descr();
459 496f9155 Scott Ullrich
			foreach ($interfaces as $ifname => $iface) {
460 389c778e gnhb
				if (is_array($iface)) {
461
						if ($iface['mac'])
462
							$iface = $ifname. " ({$iface['mac']})";	
463
					} else
464
						$iface = $ifname;
465 496f9155 Scott Ullrich
			  $SELECTED = "";
466 aecffb0a Scott Ullrich
			  if ($value == $ifname) $SELECTED = " SELECTED";
467 203de6bf Ermal Lu?i
			  $to_echo = "<option value='" . $ifname . "'" . $SELECTED . ">" . $iface . "</option>\n";
468 496f9155 Scott Ullrich
			  $to_echo .= "<!-- {$value} -->";
469
			  $canecho = 0;
470
			  if($field['interface_filter'] <> "") {
471 203de6bf Ermal Lu?i
				if(stristr($ifname, $field['interface_filter']) == true)
472 496f9155 Scott Ullrich
					$canecho = 1;
473
			  } else {
474
				$canecho = 1;
475
			  }
476 e881d1f3 Scott Ullrich
			  if($canecho == 1)
477 496f9155 Scott Ullrich
				echo $to_echo;
478
			}
479
				echo "</select>\n";
480 66f773b4 Ermal Lu?i
481
			if($field['description'] <> "") {
482
				echo "<br /> " . $field['description'];
483
		    	}
484 b7bb1711 Ermal Lu?i
485
			break;
486
		    case "password":
487 c062a711 jim-p
			if ($field['displayname']) {
488
				echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
489
				echo $field['displayname'];
490
				echo ":</td>\n";
491
			} else if(!$field['dontdisplayname']) {
492 34b5c5a0 Scott Ullrich
				echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
493 d51f86e0 Scott Ullrich
				echo fixup_string($field['name']);
494 34b5c5a0 Scott Ullrich
				echo ":</td>\n";
495
			}
496
			if(!$field['dontcombinecells'])
497
				echo "<td class=\"vtable\">";
498 c062a711 jim-p
			echo "<input class='formfld pwd' id='" . $name . "' name='" . $name . "' value='" . $value . "' type='password' ";
499 66f773b4 Ermal Lu?i
			if($field['size'])
500
				echo " size='" . $field['size'] . "' ";
501
			echo ">\n";
502
503
			if($field['description'] <> "") {
504
				echo "<br /> " . $field['description'];
505
		    	}
506 b7bb1711 Ermal Lu?i
507
			break;
508
		    case "certca_selection":
509 66f773b4 Ermal Lu?i
                        $size = "";
510
                        $multiple = "";
511
                        $name = strtolower($name);
512
                        echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
513
                        echo fixup_string($field['displayname'] ? $field['displayname'] : $field['name']) . ":\n";
514
                        echo "</td>";
515
                        echo "<td class=\"vtable\">\n";
516
                        if($field['size'] <> "") $size = "size=\"{$field['size']}\"";
517
                        echo "<select id='{$name}' name='{$name}' {$size}>\n";
518
                        if($field['add_to_certca_selection'] <> "") {
519
                                $SELECTED = "";
520
                                if($field['add_to_certca_selection'] == $value) $SELECTED = " SELECTED";
521
                                echo "<option value='" . $field['add_to_certca_selection'] . "'" . $SELECTED . ">" . $field['add_to_certca_selection'] . "</option>\n";
522
                        }
523 4e990e1e jim-p
			foreach($config['ca'] as $ca) {
524 f2a86ca9 jim-p
				$name = htmlspecialchars($ca['descr']);
525 66f773b4 Ermal Lu?i
                          $SELECTED = "";
526
                          if ($value == $name) $SELECTED = " SELECTED";
527
                          $to_echo = "<option value='" . $ca['refid'] . "'" . $SELECTED . ">" . $name . "</option>\n";
528
                          $to_echo .= "<!-- {$value} -->";
529
                          $canecho = 0;
530
                          if($field['certca_filter'] <> "") {
531
                                if(stristr($name, $field['certca_filter']) == true)
532
                                        $canecho = 1;
533
                          } else {
534
                                $canecho = 1;
535
                          }
536
                          if($canecho == 1)
537
                                echo $to_echo;
538
                        }
539
                                echo "</select>\n";
540
541
			if($field['description'] <> "") {
542
				echo "<br /> " . $field['description'];
543
		    	}
544 b7bb1711 Ermal Lu?i
545
			break;
546
		    case "cert_selection":
547 66f773b4 Ermal Lu?i
                        $size = "";
548
                        $multiple = "";
549
                        $name = strtolower($name);
550
                        echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
551
                        echo fixup_string($field['displayname'] ? $field['displayname'] : $field['name']) . ":\n";
552
                        echo "</td>";
553
                        echo "<td class=\"vtable\">\n";
554
                        if($field['size'] <> "") $size = "size=\"{$field['size']}\"";
555
                        echo "<select id='{$name}' name='{$name}' {$size}>\n";
556
                        if($field['add_to_cert_selection'] <> "") {
557
                                $SELECTED = "";
558
                                if($field['add_to_cert_selection'] == $value) $SELECTED = " SELECTED";
559
                                echo "<option value='" . $field['add_to_cert_selection'] . "'" . $SELECTED . ">" . $field['add_to_cert_selection'] . "</option>\n";
560
                        }
561 4e990e1e jim-p
                        foreach($config['cert'] as $ca) {
562 f2a86ca9 jim-p
				if (stristr($ca['descr'], "webconf"))
563 66f773b4 Ermal Lu?i
					continue;
564 f2a86ca9 jim-p
                                $name = htmlspecialchars($ca['descr']);
565 66f773b4 Ermal Lu?i
                          $SELECTED = "";
566
                          if ($value == $name) $SELECTED = " SELECTED";
567
                          $to_echo = "<option value='" . $ca['refid'] . "'" . $SELECTED . ">" . $name . "</option>\n";
568
                          $to_echo .= "<!-- {$value} -->";
569
                          $canecho = 0;
570
                          if($field['cert_filter'] <> "") {
571
                                if(stristr($name, $field['cert_filter']) == true)
572
                                        $canecho = 1;
573
                          } else {
574
                                $canecho = 1;
575
                          }
576
                          if($canecho == 1)
577
                                echo $to_echo;
578
                        }
579
                                echo "</select>\n";
580
581
			if($field['description'] <> "") {
582
				echo "<br /> " . $field['description'];
583
		    	}
584 b7bb1711 Ermal Lu?i
585
			break;
586
		    case "select":
587 7a29f783 Ermal Lu?i
			if ($field['displayname']) {
588
                                echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
589 d6f53204 Ermal Lu?i
                                echo $field['displayname'];
590 7a29f783 Ermal Lu?i
                                echo ":</td>\n";
591
			} else if(!$field['dontdisplayname']) {
592 34b5c5a0 Scott Ullrich
				echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
593 d51f86e0 Scott Ullrich
				echo fixup_string($field['name']);
594 34b5c5a0 Scott Ullrich
				echo ":</td>\n";
595
			}
596
			if($field['size']) $size = " size='" . $field['size'] . "' ";
597
			if($field['multiple'] == "yes") $multiple = "MULTIPLE ";
598
			if(!$field['dontcombinecells'])
599
				echo "<td class=\"vtable\">\n";
600
			$onchange = "";
601
			foreach ($field['options']['option'] as $opt) {
602
				if($opt['enablefields'] <> "") {
603
					$onchange = "onchange=\"enableitems(this.selectedIndex);\" ";
604
				}
605
			}
606 66f773b4 Ermal Lu?i
			echo "<select class='formselect' " . $onchange . $multiple . $size . "id='" . $name . "' name='" . $name . "'>\n";
607 34b5c5a0 Scott Ullrich
			foreach ($field['options']['option'] as $opt) {
608 46985f19 Scott Ullrich
				$selected = "";
609 47aa4fc4 Ermal
				if($value == $opt['value'])
610
					$selected = " SELECTED";
611
				echo "\t<option name='" . $opt['name'] . "' value='" . $opt['value'] . "'" . $selected . ">";
612 d6f53204 Ermal Lu?i
				if ($opt['displayname'])
613
					echo $opt['displayname'];
614
				else
615
					echo $opt['name'];
616
				echo "</option>\n";
617 34b5c5a0 Scott Ullrich
			}
618
			echo "</select>\n";
619 a314bebc Ermal
                        echo "<!-- {$value} -->\n";
620 66f773b4 Ermal Lu?i
621
			if($field['description'] <> "") {
622
				echo $field['description'];
623
		    	}
624 b7bb1711 Ermal Lu?i
625
			break;
626
		    case "textarea":
627 7a29f783 Ermal Lu?i
			if ($field['displayname']) {
628
                                echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
629 d6f53204 Ermal Lu?i
                                echo $field['displayname'];
630 7a29f783 Ermal Lu?i
                                echo ":</td>\n";
631
			} else if(!$field['dontdisplayname']) {
632 34b5c5a0 Scott Ullrich
				echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
633 d51f86e0 Scott Ullrich
				echo fixup_string($field['name']);
634 34b5c5a0 Scott Ullrich
				echo ":</td>";
635
			}
636
			if(!$field['dontcombinecells'])
637
				echo "<td class=\"vtable\">";
638 66f773b4 Ermal Lu?i
			echo "<textarea class='formpre' id='" . $name . "' name='" . $name . "'";
639
			if ($field['rows'])
640
				echo " rows='" . $field['rows'] . "' ";
641
			if ($field['cols'])
642
				echo " cols='" . $field['cols'] . "' ";
643
			echo ">" . $value . "</textarea>\n";
644
				
645
646
			if($field['description'] <> "") {
647
				echo "<br /> " . $field['description'];
648
		    	}
649 b7bb1711 Ermal Lu?i
650
			break;
651
		    case "submit":
652 34b5c5a0 Scott Ullrich
			echo "<td>&nbsp;<br></td></tr>";
653 2fbd6806 Scott Ullrich
			echo "<tr><td colspan='2'><center>";
654
			echo "<input type='submit' name='" . $name . "' value='" . $field['name'] . "'>\n";
655 66f773b4 Ermal Lu?i
656
			if($field['description'] <> "") {
657
				echo "<br /> " . $field['description'];
658
		    	}
659 b7bb1711 Ermal Lu?i
660
			break;
661
		    case "listtopic":
662
			echo "<td>&nbsp;</td></tr>";
663
			echo "<tr><td colspan=\"2\" class=\"listtopic\">" . $field['name'] . "<br ></td>\n";
664
665
			break;
666
		    case "subnet_select":
667 7a29f783 Ermal Lu?i
			if ($field['displayname']) {
668
                                echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
669 d6f53204 Ermal Lu?i
                                echo $field['displayname'];
670 7a29f783 Ermal Lu?i
                                echo ":</td>\n";
671
			} else if(!$field['dontdisplayname']) {
672 bd31336e Scott Ullrich
				echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
673
				echo fixup_string($field['name']);
674
				echo ":</td>";
675
			}
676
			if(!$field['dontcombinecells'])
677
				echo "<td class=\"vtable\">";
678 66f773b4 Ermal Lu?i
			echo "<select class='formselect' name='{$name}'>\n";
679 bd31336e Scott Ullrich
			for($x=1; $x<33; $x++) {
680
				$CHECKED = "";
681
				if($value == $x) $CHECKED = " SELECTED";
682
				if($x <> 31)
683
					echo "<option value='{$x}' {$CHECKED}>{$x}</option>\n";
684
			}
685
			echo "</select>\n";
686 66f773b4 Ermal Lu?i
687
			if($field['description'] <> "") {
688
				echo "<br /> " . $field['description'];
689
		    	}
690 b7bb1711 Ermal Lu?i
691
			break;
692
		    case "timezone_select":
693 5a8a69b3 Ermal Lu?i
			exec('/usr/bin/tar -tzf /usr/share/zoneinfo.tgz', $timezonelist);
694
			$timezonelist = array_filter($timezonelist, 'is_timezone');
695
			sort($timezonelist);
696
697
			/* kill carriage returns */
698
			for($x=0; $x<count($timezonelist); $x++)
699
				$timezonelist[$x] = str_replace("\n", "", $timezonelist[$x]);
700
701 7a29f783 Ermal Lu?i
			if ($field['displayname']) {
702
                                echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
703 d6f53204 Ermal Lu?i
                                echo $field['displayname'];
704 7a29f783 Ermal Lu?i
                                echo ":</td>\n";
705
			} else if(!$field['dontdisplayname']) {
706 bd31336e Scott Ullrich
				echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
707
				echo fixup_string($field['name']);
708
				echo ":</td>";
709
			}
710
			if(!$field['dontcombinecells'])
711
				echo "<td class=\"vtable\">";
712 66f773b4 Ermal Lu?i
			echo "<select class='formselect' name='{$name}'>\n";
713 bd31336e Scott Ullrich
			foreach ($timezonelist as $tz) {
714 ce6b39f2 jim-p
				if(strstr($tz, "GMT"))
715
					continue;
716 bd31336e Scott Ullrich
				$SELECTED = "";
717
				if ($value == $tz) $SELECTED = " SELECTED";
718
				echo "<option value='" . htmlspecialchars($tz) . "' {$SELECTED}>";
719
				echo htmlspecialchars($tz);
720
				echo "</option>\n";
721
			}
722
			echo "</select>\n";
723 66f773b4 Ermal Lu?i
724
			if($field['description'] <> "") {
725
				echo "<br /> " . $field['description'];
726
		    	}
727 b7bb1711 Ermal Lu?i
728
			break;
729
		    case "checkbox":
730 7a29f783 Ermal Lu?i
			if ($field['displayname']) {
731
                                echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
732 d6f53204 Ermal Lu?i
                                echo $field['displayname'];
733 7a29f783 Ermal Lu?i
                                echo ":</td>\n";
734
			} else if(!$field['dontdisplayname']) {
735 34b5c5a0 Scott Ullrich
				echo "<td width=\"22%\" align=\"right\" class=\"vncellreq\">\n";
736
				echo $field['name'];
737
				echo ":</td>";
738
			}
739
			$checked = "";
740 eb20f3c5 Ermal Lu?i
			if($value <> "")
741
				$checked = " CHECKED";
742 72a5f424 Ermal Lu?i
			echo "<td class=\"vtable\"><input value=\"on\" type='checkbox' id='" . $name . "' name='" . $name . "' " . $checked;
743 b7bb1711 Ermal Lu?i
			if(isset($field['enablefields']) or isset($field['checkenablefields']))
744
				echo " onClick=\"enablechange()\"";
745 1ae55320 Ermal
			else if(isset($field['disablefields']) or isset($field['checkdisablefields']))
746
				echo " onClick=\"disablechange()\"";
747 33a56b27 Colin Smith
			echo ">\n";
748 66f773b4 Ermal Lu?i
749
			if($field['description'] <> "") {
750
				echo $field['description'];
751
		    	}
752 b7bb1711 Ermal Lu?i
753
			break;
754 34b5c5a0 Scott Ullrich
		    }
755
756
		    if($field['typehint'] <> "") {
757
			echo $field['typehint'];
758 2fbd6806 Scott Ullrich
		    }
759 f3c6fdc0 Bill Marquette
		    if($field['warning'] <> "") {
760 b7bb1711 Ermal Lu?i
			echo "<br ><b><font color=\"red\">" . $field['warning'] . "</font></b>";
761 f3c6fdc0 Bill Marquette
		    }
762
763 8984dc5e Ermal
		    if(!$field['combinefieldsbegin']) {
764
		    	if (!$field['dontcombinecells'])
765
		    		echo "</td>";
766
767
			 echo "</tr>\n";
768
		    }
769 1ae55320 Ermal
770 34b5c5a0 Scott Ullrich
		}
771
	}
772
    ?>
773 b7bb1711 Ermal Lu?i
	</table>
774
	</td></tr>
775 658292ef Scott Ullrich
</table>
776 85dc4438 Scott Ullrich
<br>&nbsp;
777 5adb3375 Scott Ullrich
</div>
778 658292ef Scott Ullrich
</form>
779 44c10295 Scott Ullrich
<script type="text/javascript">
780 62a48760 Scott Ullrich
<!--
781
	if (typeof ext_change != 'undefined') {
782
		ext_change();
783
	}
784
	if (typeof proto_change != 'undefined') {
785
		ext_change();
786
	}
787
	if (typeof proto_change != 'undefined') {
788
		proto_change();
789
	}
790 5adb3375 Scott Ullrich
791 62a48760 Scott Ullrich
<?php
792
	$isfirst = 0;
793
	$aliases = "";
794
	$addrisfirst = 0;
795
	$aliasesaddr = "";
796
	if($config['aliases']['alias'] <> "" and is_array($config['aliases']['alias']))
797
		foreach($config['aliases']['alias'] as $alias_name) {
798 40050fab Ermal
				if($isfirst == 1)
799
					$aliases .= ",";
800 62a48760 Scott Ullrich
				$aliases .= "'" . $alias_name['name'] . "'";
801
				$isfirst = 1;
802
		}
803
?>
804
805
	var customarray=new Array(<?php echo $aliases; ?>);
806
807 44c10295 Scott Ullrich
	window.onload = function () {
808
809
		<?php
810
			$counter=0;
811
			foreach($inputaliases as $alias) {
812 40050fab Ermal
				echo "var oTextbox$counter = new AutoSuggestControl(document.getElementById(\"$alias\"), new StateSuggestions(customarray));\n";
813 44c10295 Scott Ullrich
				$counter++;
814
			}
815
		?>
816
817
	}
818
819 62a48760 Scott Ullrich
//-->
820
</script>
821 5adb3375 Scott Ullrich
<script type="text/javascript">
822
NiftyCheck();
823 e881d1f3 Scott Ullrich
var bgcolor = document.getElementsByTagName("body")[0].style.backgroundColor;
824
Rounded("div#roundme","all",bgcolor,"#FFFFFF","smooth");
825 1ae55320 Ermal
enablechange();
826
disablechange();
827
showchange();
828 5adb3375 Scott Ullrich
</script>
829
830 34b5c5a0 Scott Ullrich
<?php
831
832
$fieldnames_array = Array();
833
if($pkg['step'][$stepid]['disableallfieldsbydefault'] <> "") {
834
	// create a fieldname loop that can be used with javascript
835
	// hide and enable features.
836 44c10295 Scott Ullrich
	echo "\n<script type=\"text/javascript\">\n";
837 34b5c5a0 Scott Ullrich
	echo "function disableall() {\n";
838
	foreach ($pkg['step'][$stepid]['fields']['field'] as $field) {
839
		if($field['type'] <> "submit" and $field['type'] <> "listtopic") {
840
			if(!$field['donotdisable'] <> "") {
841
				array_push($fieldnames_array, $field['name']);
842
				$fieldname = ereg_replace(" ", "", $field['name']);
843
				$fieldname = strtolower($fieldname);
844
				echo "\tdocument.forms[0]." . $fieldname . ".disabled = 1;\n";
845
			}
846
		}
847
	}
848
	echo "}\ndisableall();\n";
849
	echo "function enableitems(selectedindex) {\n";
850
	echo "disableall();\n";
851
	$idcounter = 0;
852
	if($pkg['step'][$stepid]['fields']['field'] <> "") {
853
		echo "\tswitch(selectedindex) {\n";
854
		foreach ($pkg['step'][$stepid]['fields']['field'] as $field) {
855
			if($field['options']['option'] <> "") {
856
				foreach ($field['options']['option'] as $opt) {
857
					if($opt['enablefields'] <> "") {
858
						echo "\t\tcase " . $idcounter . ":\n";
859
						$enablefields_split = split(",", $opt['enablefields']);
860
						foreach ($enablefields_split as $efs) {
861
							$fieldname = ereg_replace(" ", "", $efs);
862
							$fieldname = strtolower($fieldname);
863
							if($fieldname <> "") {
864
								$onchange = "\t\t\tdocument.forms[0]." . $fieldname . ".disabled = 0; \n";
865
								echo $onchange;
866
							}
867
						}
868
						echo "\t\t\tbreak;\n";
869
					}
870
					$idcounter = $idcounter + 1;
871
				}
872
			}
873
		}
874
		echo "\t}\n";
875
	}
876
	echo "}\n";
877
	echo "</script>\n\n";
878
}
879
880
881
if($pkg['step'][$stepid]['stepafterformdisplay'] <> "") {
882
	// handle after form display event.
883
	eval($pkg['step'][$stepid]['stepafterformdisplay']);
884
}
885
886
if($pkg['step'][$stepid]['javascriptafterformdisplay'] <> "") {
887
	// handle after form display event.
888 44c10295 Scott Ullrich
        echo "\n<script type=\"text/javascript\">\n";
889 34b5c5a0 Scott Ullrich
	echo $pkg['step'][$stepid]['javascriptafterformdisplay'] . "\n";
890
	echo "</script>\n\n";
891
}
892
893 d51f86e0 Scott Ullrich
/*
894
 *  HELPER FUNCTIONS
895
 */
896
897
function fixup_string($string) {
898 a0190b50 Scott Ullrich
	global $config, $myurl;
899 78818d7a Scott Ullrich
	$newstring = $string;
900 d51f86e0 Scott Ullrich
	// fixup #1: $myurl -> http[s]://ip_address:port/
901 43d9a2d3 jim-p
	switch($config['system']['webgui']['protocol']) {
902 037304d8 Scott Ullrich
		case "http":
903
			$proto = "http";
904
			break;
905
		case "https":
906
			$proto = "https";
907
			break;
908
		default:
909
			$proto = "http";
910
			break;
911
	}
912 43d9a2d3 jim-p
	$port = $config['system']['webgui']['port'];
913 037304d8 Scott Ullrich
	if($port != "") {
914
		if(($port == "443" and $proto != "https") or ($port == "80" and $proto != "http")) {
915
			$urlport = ":" . $port;
916
		} elseif ($port != "80" and $port != "443") {
917
			$urlport = ":" . $port;
918
		} else {
919
			$urlport = "";
920
		}
921
	}
922 39d1c22d sullrich
	$myurl = $proto . "://" . $_SERVER['HTTP_HOST'] . $urlport . "/";
923 d70a5ac6 Ermal Lu?i
924
	if (strstr($newstring, "\$myurl"))
925
		$newstring = str_replace("\$myurl", $myurl, $newstring);
926 d2133701 Scott Ullrich
	// fixup #2: $wanip
927 d70a5ac6 Ermal Lu?i
	if (strstr($newstring, "\$wanip")) {
928
		$curwanip = get_interface_ip();
929
		$newstring = str_replace("\$wanip", $curwanip, $newstring);
930
	}
931 d2133701 Scott Ullrich
	// fixup #3: $lanip
932 d70a5ac6 Ermal Lu?i
	if (strstr($newstring, "\$lanip")) {
933
		$lanip = get_interface_ip("lan");
934
		$newstring = str_replace("\$lanip", $lanip, $newstring);
935
	}
936 d2133701 Scott Ullrich
	// fixup #4: fix'r'up here.
937 d51f86e0 Scott Ullrich
	return $newstring;
938
}
939
940 bd31336e Scott Ullrich
function is_timezone($elt) {
941
	return !preg_match("/\/$/", $elt);
942
}
943 d51f86e0 Scott Ullrich
944 c8000491 Scott Ullrich
?>
945
946
</body>
947
</html>