"") {
$g['language'] = $config['system']['language'];
} elseif ($g['language'] == "") {
$g['language'] = 'en_US';
}
set_language($g['language']);
/* used by progress bar */
$lastseen = "-1";
$navlevelsep = ": "; /* navigation level separator string */
$mandfldhtml = ""; /* display this before mandatory input fields */
$mandfldhtmlspc = ""; /* same as above, but with spacing */
/* Some ajax scripts still need access to GUI */
if (!$ignorefirmwarelock) {
if (is_subsystem_dirty('firmwarelock')) {
if (!$d_isfwfile) {
header("Location: system_firmware.php");
exit;
} else {
return;
}
}
}
/* Reserved table names to avoid collision */
$reserved_table_names = array(
"bogons",
"bogonsv6",
"negate_networks",
"snort2c",
"sshlockout",
"tonatsubnets",
"virusprot",
"vpn_networks",
"webConfiguratorlockout"
);
$firewall_rules_dscp_types = array(
"af11",
"af12",
"af13",
"af21",
"af22",
"af23",
"af31",
"af32",
"af33",
"af41",
"af42",
"af43",
"VA",
"EF",
"cs1",
"cs2",
"cs3",
"cs4",
"cs5",
"cs6",
"cs7",
"0x01",
"0x02",
"0x04");
$auth_server_types = array(
'ldap' => "LDAP",
'radius' => "Radius");
$ldap_urltypes = array(
'TCP - Standard' => 389,
'SSL - Encrypted' => 636);
$ldap_scopes = array(
'one' => "One Level",
'subtree' => "Entire Subtree");
$ldap_protvers = array(
2,
3);
$ldap_templates = array(
'open' => array(
'desc' => "OpenLDAP",
'attr_user' => "cn",
'attr_group' => "cn",
'attr_member' => "member"),
'msad' => array(
'desc' => "Microsoft AD",
'attr_user' => "samAccountName",
'attr_group' => "cn",
'attr_member' => "memberOf"),
'edir' => array(
'desc' => "Novell eDirectory",
'attr_user' => "cn",
'attr_group' => "cn",
'attr_member' => "uniqueMember"));
$radius_srvcs = array(
'both' => "Authentication and Accounting",
'auth' => "Authentication",
'acct' => "Accounting");
$netbios_nodetypes = array(
'0' => "none",
'1' => "b-node",
'2' => "p-node",
'4' => "m-node",
'8' => "h-node");
/* some well known ports */
$wkports = array(
5999 => "CVSup",
53 => "DNS",
21 => "FTP",
3000 => "HBCI",
80 => "HTTP",
443 => "HTTPS",
5190 => "ICQ",
113 => "IDENT/AUTH",
143 => "IMAP",
993 => "IMAP/S",
4500 => "IPsec NAT-T",
500 => "ISAKMP",
1701 => "L2TP",
389 => "LDAP",
1755 => "MMS/TCP",
7000 => "MMS/UDP",
445 => "MS DS",
3389 => "MS RDP",
1512 => "MS WINS",
1863 => "MSN",
119 => "NNTP",
123 => "NTP",
138 => "NetBIOS-DGM",
137 => "NetBIOS-NS",
139 => "NetBIOS-SSN",
1194 => "OpenVPN",
110 => "POP3",
995 => "POP3/S",
1723 => "PPTP",
1812 => "RADIUS",
1813 => "RADIUS accounting",
5004 => "RTP",
5060 => "SIP",
25 => "SMTP",
465 => "SMTP/S",
161 => "SNMP",
162 => "SNMP-Trap",
22 => "SSH",
3478 => "STUN",
587 => "SUBMISSION",
3544 => "Teredo",
23 => "Telnet",
69 => "TFTP",
5900 => "VNC");
/* TCP flags */
$tcpflags = array("fin", "syn", "rst", "psh", "ack", "urg", "ece", "cwr");
$specialnets = array("(self)" => "This Firewall", "pptp" => "PPTP clients", "pppoe" => "PPPoE clients", "l2tp" => "L2TP clients");
$spiflist = get_configured_interface_with_descr(false, true);
foreach ($spiflist as $ifgui => $ifdesc) {
$specialnets[$ifgui] = $ifdesc . " net";
$specialnets[$ifgui . 'ip'] = $ifdesc . " address";
}
$medias = array(
"auto" => "autoselect",
"100full" => "100BASE-TX full-duplex",
"100half" => "100BASE-TX half-duplex",
"10full" => "10BASE-T full-duplex",
"10half" => "10BASE-T half-duplex");
$wlan_modes = array(
"bss" => "Infrastructure (BSS)",
"adhoc" => "Ad-hoc (IBSS)",
"hostap" => "Access Point");
function do_input_validation($postdata, $reqdfields, $reqdfieldsn, &$input_errors) {
/* check for bad control characters */
foreach ($postdata as $pn => $pd) {
if (is_string($pd) && preg_match("/[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/", $pd)) {
$input_errors[] = sprintf(gettext("The field %s contains invalid characters."), $pn);
}
}
for ($i = 0; $i < count($reqdfields); $i++) {
if ($_POST[$reqdfields[$i]] == "" && $_REQUEST[$reqdfields[$i]] == "") {
$input_errors[] = sprintf(gettext("The field %s is required."), $reqdfieldsn[$i]);
}
}
}
function print_input_errors($input_errors) {
echo '
';
}
function verify_gzip_file($fname) {
$returnvar = mwexec("/usr/bin/gzip -t " . escapeshellarg($fname));
if ($returnvar != 0) {
return 0;
} else {
return 1;
}
}
function print_info_box_np($msg, $name="apply",$value="", $showapply=false, $class="alert-warning") {
global $g;
if(strpos($class, "alert-") !== 0)
$class = 'alert-' . $class;
if(empty($value)) {
$value = gettext("Apply changes");
}
$msg = '' . $msg . '
';
if (stristr($msg, gettext("apply")) != false || stristr($msg, gettext("save")) != false || stristr($msg, gettext("create")) != false || $showapply) {
$msg .= '';
} else
$msg = '× '. $msg;
echo ''.$msg.'
';
}
function print_info_box_np_undo($msg, $name = "apply", $value = "Apply changes", $undo) {
global $g;
if (stristr($msg, "apply") != false || stristr($msg, "save") != false || stristr($msg, "create") != false) {
$savebutton = "";
$savebutton .= " ";
$savebutton .= " ";
$savebutton .= " ";
if ($_POST['if']) {
$savebutton .= " ";
}
}
$nifty_redbox = "#990000";
$nifty_blackbox = "#000000";
$themename = $g['theme'];
if (file_exists("/usr/local/www/themes/{$themename}/tabcontrols.php")) {
$toeval = file_get_contents("/usr/local/www/themes/{$themename}/tabcontrols.php");
eval($toeval);
}
if (file_exists("/usr/local/www/themes/{$themename}/infobox.php")) {
$toeval = file_get_contents("/usr/local/www/themes/{$themename}/infobox.php");
eval($toeval);
}
if (!$savebutton) {
$savebutton = " ";
}
echo <<
{$msg}
{$savebutton}
{$undobutton}
EOFnp;
}
function print_info_box($msg, $class="alert-warning") {
print_info_box_np($msg, null, null, false, $class);
}
function get_std_save_message($ok) {
global $d_sysrebootreqd_path;
$filter_related = false;
$filter_pages = array("nat", "filter");
$to_return = gettext("The changes have been applied successfully.");
foreach ($filter_pages as $fp) {
if (stristr($_SERVER['SCRIPT_FILENAME'], $fp)) {
$filter_related = true;
}
}
if ($filter_related) {
$to_return .= " " . gettext("You can also monitor the filter reload progress.");
}
return $to_return;
}
function pprint_address($adr) {
global $specialnets;
if (isset($adr['any'])) {
$padr = "*";
} else if ($adr['network']) {
$padr = $specialnets[$adr['network']];
} else {
$padr = $adr['address'];
}
if (isset($adr['not'])) {
$padr = "! " . $padr;
}
return $padr;
}
function pprint_port($port) {
global $wkports;
$pport = "";
if (!$port) {
return "*";
} else {
$srcport = explode("-", $port);
if ((!$srcport[1]) || ($srcport[0] == $srcport[1])) {
$pport = $srcport[0];
if ($wkports[$srcport[0]]) {
$pport .= " (" . $wkports[$srcport[0]] . ")";
}
} else {
$pport .= $srcport[0] . " - " . $srcport[1];
}
}
return $pport;
}
function firewall_check_for_advanced_options(&$item) {
$item_set = "";
if ($item['os']) {
$item_set .= "os {$item['os']} ";
}
if ($item['dscp']) {
$item_set .= "dscp {$item['dscp']} ";
}
if ($item['max']) {
$item_set .= "max {$item['max']} ";
}
if ($item['max-src-nodes']) {
$item_set .= "max-src-nodes {$item['max-src-nodes']} ";
}
if ($item['max-src-conn']) {
$item_set .= "max-src-conn {$item['max-src-conn']} ";
}
if ($item['max-src-states']) {
$item_set .= "max-src-states {$item['max-src-states']} ";
}
if (isset($item['nopfsync'])) {
$item_set .= "nopfsync ";
}
if ($item['statetype'] != "keep state" && $item['statetype'] != "") {
$item_set .= "statetype {$item['statetype']} ";
}
if ($item['statetimeout']) {
$item_set .= "statetimeout {$item['statetimeout']} ";
}
if (isset($item['nosync'])) {
$item_set .= "no XMLRPC Sync ";
}
if ($item['max-src-conn-rate']) {
$item_set .= "max-src-conn-rate {$item['max-src-conn-rate']} ";
}
if ($item['max-src-conn-rates']) {
$item_set .= "max-src-conn-rates {$item['max-src-conn-rates']} ";
}
if ($item['vlanprio']) {
$item_set .= "vlanprio {$item['vlanprio']} ";
}
if ($item['vlanprioset']) {
$item_set .= "vlanprioset {$item['vlanprioset']} ";
}
if ($item['gateway']) {
$item_set .= "gateway {$item['gateway']} ";
}
if ($item['dnpipe']) {
$item_set .= "limiter {$item['dnpipe']} ";
}
if ($item['pdnpipe']) {
$item_set .= "limiter {$item['pdnpipe']} ";
}
if ($item['ackqueue']) {
$item_set .= "ackqueue {$item['ackqueue']} ";
}
if ($item['defaultqueue']) {
$item_set .= "defaultqueue {$item['defaultqueue']} ";
}
if ($item['l7container']) {
$item_set .= "layer7 {$item['l7container']} ";
}
if ($item['tag']) {
$item_set .= "tag {$item['tag']} ";
}
if ($item['tagged']) {
$item_set .= "tagged {$item['tagged']} ";
}
if (isset($item['allowopts'])) {
$item_set .= "allowopts ";
}
if (isset($item['disablereplyto'])) {
$item_set .= "disable reply-to ";
}
if ($item['tcpflags_any'] || $item['tcpflags1'] || $item['tcpflags2']) {
$item_set .= "tcpflags set";
}
return $item_set;
}
function gentitle($title) {
global $navlevelsep;
if (!is_array($title)) {
return $title;
} else {
return join($navlevelsep, $title);
}
}
function genhtmltitle($title) {
if(!is_array($title))
return '';
$heading = '';
$bc = '';
foreach ($title as $el)
$bc .= ''.$el.' ';
$bc .= ' ';
return $heading . $bc;
}
/* update the changedesc and changecount(er) variables */
function update_changedesc($update) {
global $changedesc;
global $changecount;
$changedesc .= " {$update}";
$changecount++;
}
function clear_log_file($logfile = "/var/log/system.log", $restart_syslogd = true) {
global $config, $g;
if ($restart_syslogd) {
exec("/usr/bin/killall syslogd");
}
if (isset($config['system']['disablesyslogclog'])) {
unlink($logfile);
touch($logfile);
} else {
$log_size = isset($config['syslog']['logfilesize']) ? $config['syslog']['logfilesize'] : "511488";
if (isset($config['system']['usefifolog'])) {
exec("/usr/sbin/fifolog_create -s {$log_size} " . escapeshellarg($logfile));
} else {
exec("/usr/local/sbin/clog -i -s {$log_size} " . escapeshellarg($logfile));
}
}
if ($restart_syslogd) {
system_syslogd_start();
}
}
function clear_all_log_files() {
global $g;
exec("/usr/bin/killall syslogd");
$log_files = array("system", "filter", "dhcpd", "vpn", "pptps", "poes", "l2tps", "openvpn", "portalauth", "ipsec", "ppp", "relayd", "wireless", "lighttpd", "ntpd", "gateways", "resolver", "routing");
foreach ($log_files as $lfile) {
clear_log_file("{$g['varlog_path']}/{$lfile}.log", false);
}
system_syslogd_start();
killbyname("dhcpd");
services_dhcpd_configure();
return;
}
// This version of dump_clog() does not output or any other table elements. It can be renamed
// and the dump_clog() removed once all of the diag_log*.php files have been converted to Bootstrap
function dump_clog_no_table($logfile, $tail, $withorig = true, $grepfor = "", $grepinvert = "") {
global $g, $config;
$sor = isset($config['syslog']['reverse']) ? "-r" : "";
$logarr = "";
$grepline = " ";
if(is_array($grepfor))
$grepline .= " | /usr/bin/egrep " . escapeshellarg(implode("|", $grepfor));
if(is_array($grepinvert))
$grepline .= " | /usr/bin/egrep -v " . escapeshellarg(implode("|", $grepinvert));
if (is_dir($logfile)) {
$logarr = array("File $logfile is a directory.");
} elseif (file_exists($logfile) && filesize($logfile) == 0) {
$logarr = array("Log file started.");
} else {
if($config['system']['disablesyslogclog']) {
exec("cat " . escapeshellarg($logfile) . "{$grepline} | /usr/bin/tail {$sor} -n " . escapeshellarg($tail), $logarr);
} else {
if(isset($config['system']['usefifolog']))
exec("/usr/sbin/fifolog_reader " . escapeshellarg($logfile) . "{$grepline} | /usr/bin/tail {$sor} -n " . escapeshellarg($tail), $logarr);
else
exec("/usr/local/sbin/clog " . escapeshellarg($logfile) . "{$grepline}| grep -v \"CLOG\" | grep -v \"\033\" | /usr/bin/tail {$sor} -n " . escapeshellarg($tail), $logarr);
}
}
echo "\n";
$rows = 0;
foreach ($logarr as $logent) {
$rows++;
$logent = preg_split("/\s+/", $logent, 6);
if ($withorig) {
if(isset($config['system']['usefifolog'])) {
$entry_date_time = htmlspecialchars(date("F j, Y, g:i a","" . $logent[1] . ""));
$entry_text = htmlspecialchars($logent[5]);
} else {
$entry_date_time = htmlspecialchars(join(" ", array_slice($logent, 0, 3)));
$entry_text = ($logent[3] == $config['system']['hostname']) ? "" : $logent[3] . " ";
$entry_text .= htmlspecialchars($logent[4] . " " . $logent[5]);
}
echo "{$entry_date_time}";
echo " " . "{$entry_text}" . "\n";
} else {
echo htmlspecialchars($logent[5]) . "\n";
}
}
return($rows);
}
function dump_clog($logfile, $tail, $withorig = true, $grepfor = "", $grepinvert = "") {
global $g, $config;
$sor = isset($config['syslog']['reverse']) ? "-r" : "";
$logarr = "";
$grepline = " ";
if (is_array($grepfor)) {
$grepline .= " | /usr/bin/egrep " . escapeshellarg(implode("|", $grepfor));
}
if (is_array($grepinvert)) {
$grepline .= " | /usr/bin/egrep -v " . escapeshellarg(implode("|", $grepinvert));
}
if (is_dir($logfile)) {
$logarr = array("File $logfile is a directory.");
} elseif (file_exists($logfile) && filesize($logfile) == 0) {
$logarr = array("Log file started.");
} else {
if ($config['system']['disablesyslogclog']) {
exec("cat " . escapeshellarg($logfile) . "{$grepline} | /usr/bin/tail {$sor} -n " . escapeshellarg($tail), $logarr);
} else {
if (isset($config['system']['usefifolog'])) {
exec("/usr/sbin/fifolog_reader " . escapeshellarg($logfile) . "{$grepline} | /usr/bin/tail {$sor} -n " . escapeshellarg($tail), $logarr);
} else {
exec("/usr/local/sbin/clog " . escapeshellarg($logfile) . "{$grepline}| grep -v \"CLOG\" | grep -v \"\033\" | /usr/bin/tail {$sor} -n " . escapeshellarg($tail), $logarr);
}
}
}
foreach ($logarr as $logent) {
$logent = preg_split("/\s+/", $logent, 6);
echo "\n";
if ($withorig) {
if (isset($config['system']['usefifolog'])) {
$entry_date_time = htmlspecialchars(date("F j, Y, g:i a", "" . $logent[1] . ""));
$entry_text = htmlspecialchars($logent[5]);
} else {
$entry_date_time = htmlspecialchars(join(" ", array_slice($logent, 0, 3)));
$entry_text = ($logent[3] == $config['system']['hostname']) ? "" : $logent[3] . " ";
$entry_text .= htmlspecialchars($logent[4] . " " . $logent[5]);
}
echo "{$entry_date_time} \n";
echo "{$entry_text} \n";
} else {
echo "" . htmlspecialchars($logent[5]) . " \n";
}
echo " \n";
}
}
function return_clog($logfile, $tail, $withorig = true, $grepfor = "", $grepinvert = "", $grepreverse = false) {
global $g, $config;
$sor = (isset($config['syslog']['reverse']) || $grepreverse) ? "-r" : "";
$logarr = "";
$grepline = " ";
if (is_array($grepfor)) {
$grepline .= " | /usr/bin/egrep " . escapeshellarg(implode("|", $grepfor));
}
if (is_array($grepinvert)) {
$grepline .= " | /usr/bin/egrep -v " . escapeshellarg(implode("|", $grepinvert));
}
if ($config['system']['disablesyslogclog']) {
exec("cat " . escapeshellarg($logfile) . "{$grepline} | /usr/bin/tail {$sor} -n " . escapeshellarg($tail), $logarr);
} else {
if (isset($config['system']['usefifolog'])) {
exec("/usr/sbin/fifolog_reader " . escapeshellarg($logfile) . "{$grepline} | /usr/bin/tail {$sor} -n " . escapeshellarg($tail), $logarr);
} else {
exec("/usr/local/sbin/clog " . escapeshellarg($logfile) . "{$grepline}| grep -v \"CLOG\" | grep -v \"\033\" | /usr/bin/tail {$sor} -n " . escapeshellarg($tail), $logarr);
}
}
return($logarr);
}
/* Check if variable has changed, update and log if it has
* returns true if var changed
* varname = variable name in plain text
* orig = original value
* new = new value
*/
function update_if_changed($varname, & $orig, $new) {
if (is_array($orig) && is_array($new)) {
$a_diff = array_diff($orig, $new);
foreach ($a_diff as $diff) {
update_changedesc("removed {$varname}: \"{$diff}\"");
}
$a_diff = array_diff($new, $orig);
foreach ($a_diff as $diff) {
update_changedesc("added {$varname}: \"{$diff}\"");
}
$orig = $new;
return true;
} else {
if ($orig != $new) {
update_changedesc("{$varname}: \"{$orig}\" -> \"{$new}\"");
$orig = $new;
return true;
}
}
return false;
}
function address_to_pconfig($adr, &$padr, &$pmask, &$pnot, &$pbeginport, &$pendport) {
if (isset($adr['any'])) {
$padr = "any";
} else if ($adr['network']) {
$padr = $adr['network'];
} else if ($adr['address']) {
list($padr, $pmask) = explode("/", $adr['address']);
if (!$pmask) {
if (is_ipaddrv6($padr)) {
$pmask = 128;
} else {
$pmask = 32;
}
}
}
if (isset($adr['not'])) {
$pnot = 1;
} else {
$pnot = 0;
}
if ($adr['port']) {
list($pbeginport, $pendport) = explode("-", $adr['port']);
if (!$pendport) {
$pendport = $pbeginport;
}
} else if (!is_alias($pbeginport) && !is_alias($pendport)) {
$pbeginport = "any";
$pendport = "any";
}
}
function pconfig_to_address(&$adr, $padr, $pmask, $pnot = false, $pbeginport = 0, $pendport = 0) {
$adr = array();
if ($padr == "any") {
$adr['any'] = true;
} else if (is_specialnet($padr)) {
$adr['network'] = $padr;
} else {
$adr['address'] = $padr;
if (is_ipaddrv6($padr)) {
if ($pmask != 128) {
$adr['address'] .= "/" . $pmask;
}
} else {
if ($pmask != 32) {
$adr['address'] .= "/" . $pmask;
}
}
}
if ($pnot) {
$adr['not'] = true;
} else {
unset($adr['not']);
}
if (($pbeginport != 0) && ($pbeginport != "any")) {
if ($pbeginport != $pendport) {
$adr['port'] = $pbeginport . "-" . $pendport;
} else {
$adr['port'] = $pbeginport;
}
}
if (is_alias($pbeginport)) {
$adr['port'] = $pbeginport;
}
}
function is_specialnet($net) {
global $specialsrcdst;
if (!$net) {
return false;
}
if (in_array($net, $specialsrcdst)) {
return true;
} else {
return false;
}
}
//function to create widget tabs when called
function display_widget_tabs(& $tab_array) {
echo "";
$tabscounter = 0;
foreach ($tab_array as $ta) {
$dashpos = strpos($ta[2], '-');
$tabname = $ta[2] . "-tab";
$tabclass = substr($ta[2], 0, $dashpos);
$tabclass = $tabclass . "-class";
if ($ta[1] == true) {
$tabActive = "table-cell";
$tabNonActive = "none";
} else {
$tabActive = "none";
$tabNonActive = "table-cell";
}
echo "
";
echo " {$ta[0]}";
echo " ";
echo "
";
echo "
";
echo " {$ta[0]}";
echo " ";
echo "
";
}
echo "";
echo "
";
}
// Return inline javascript file or CSS to minimize
// request count going back to server.
function outputJavaScriptFileInline($javascript) {
if (file_exists($javascript)) {
echo "\n\n";
} else {
echo "\n\n\n\n";
}
}
function outputCSSPrintFileInline($css) {
if (file_exists($css)) {
echo "\n\n";
} else {
echo "\n\n\n\n";
}
}
function outputCSSFileInline($css) {
if (file_exists($css)) {
echo "\n\n";
} else {
echo "\n\n\n\n";
}
}
$rfc2616 = array(
100 => "100 Continue",
101 => "101 Switching Protocols",
200 => "200 OK",
201 => "201 Created",
202 => "202 Accepted",
203 => "203 Non-Authoritative Information",
204 => "204 No Content",
205 => "205 Reset Content",
206 => "206 Partial Content",
300 => "300 Multiple Choices",
301 => "301 Moved Permanently",
302 => "302 Found",
303 => "303 See Other",
304 => "304 Not Modified",
305 => "305 Use Proxy",
306 => "306 (Unused)",
307 => "307 Temporary Redirect",
400 => "400 Bad Request",
401 => "401 Unauthorized",
402 => "402 Payment Required",
403 => "403 Forbidden",
404 => "404 Not Found",
405 => "405 Method Not Allowed",
406 => "406 Not Acceptable",
407 => "407 Proxy Authentication Required",
408 => "408 Request Timeout",
409 => "409 Conflict",
410 => "410 Gone",
411 => "411 Length Required",
412 => "412 Precondition Failed",
413 => "413 Request Entity Too Large",
414 => "414 Request-URI Too Long",
415 => "415 Unsupported Media Type",
416 => "416 Requested Range Not Satisfiable",
417 => "417 Expectation Failed",
500 => "500 Internal Server Error",
501 => "501 Not Implemented",
502 => "502 Bad Gateway",
503 => "503 Service Unavailable",
504 => "504 Gateway Timeout",
505 => "505 HTTP Version Not Supported"
);
function is_rfc2616_code($code) {
global $rfc2616;
if (isset($rfc2616[$code])) {
return true;
} else {
return false;
}
}
function print_rfc2616_select($tag, $current) {
global $rfc2616;
/* Default to 200 OK if not set */
if ($current == "") {
$current = 200;
}
echo "\n";
foreach ($rfc2616 as $code => $message) {
if ($code == $current) {
$sel = " selected=\"selected\"";
} else {
$sel = "";
}
echo "{$message} \n";
}
echo " \n";
}
// Useful debugging function, much cleaner than print_r
function echo_array($array, $return_me = false) {
if (is_array($array) == false) {
$return = "The provided variable is not an array.";
} else {
foreach ($array as $name=>$value) {
if (is_array($value)) {
$return .= "";
$return .= "['$name '] {\n";
$return .= echo_array($value, true);
$return .= "
}";
$return .= "\n\n";
} else {
if (is_string($value)) {
$value = "\"$value\"";
}
$return .= "['$name '] = $value\n\n";
}
}
}
if ($return_me == true) {
return $return;
} else {
echo "".$return." ";
}
}
/****f* pfsense-utils/display_top_tabs
* NAME
* display_top_tabs - display tabs with rounded edges
* INPUTS
* $text - array of tabs
* RESULT
* null
******/
function display_top_tabs(& $tab_array, $no_drop_down = false, $type = 'pills') {
global $config;
global $g;
global $tab_array_indent;
global $tab_array_space;
global $tab_array_char_limit;
/* does the user have access to this tab?
* master user has access to everything.
* if the user does not have access, simply
* unset the tab item.
*/
/* empty string code */
if ($tab_array_indent == '') {
$tab_array_indent = 0;
}
if ($tab_array_space == '') {
$tab_array_space = 1;
}
if ($tab_array_char_limit == '') {
$tab_array_char_limit = 92;
}
foreach ($tab_array as $tab_id => $ta) {
if (!isAllowedPage($ta[2])) {
unset ($tab_array[$tab_id]);
}
}
$tab_active_bg = "#EEEEEE";
$tab_inactive_bg = "#777777";
$nifty_tabs_corners = "#FFF";
$font_color = "white";
$tabcharcount = 0;
foreach ($tab_array as $ta)
$tabcharcount = $tabcharcount + strlen($ta[0]);
if($no_drop_down == true) {
$tabcharcount = 0;
unset($tab_array_char_limit);
}
// If the character count of the tab names is > 670
// then show a select item dropdown menubox.
if($tabcharcount > $tab_array_char_limit): ?>
echo gettext("Currently viewing: ");
echo "\n";
foreach ($tab_array as $ta) {
if($ta[1]=="true")
$selected = " selected=\"selected\"";
else
$selected = "";
// Onclick in option will not work in some browser
// echo "{$ta['0']} \n";
echo "{$ta['0']} \n";
}
echo " \n
";
echo "";
else: ?>
'. $alias['url'] .''. implode(' ', $alias_ports_address) .' ';
if ($counter > 10002)
$content .= ''. gettext("listing only first 10k items") .' ';
}
else
{
$alias_addresses = explode (" ", $alias['address']);
$alias_details = explode ("||", $alias['detail']);
$content .= ''. implode(' ', $alias_addresses) .' ';
}
if (strlen($alias['descr']) >= $maxlength)
$alias['descr'] = substr($alias['descr'], 0, $maxlength) . '…';
return $content;
}
function rule_columns_with_alias($src, $srcport, $dst, $dstport){
global $config;
if ($config['aliases']['alias'] == "" || !is_array($config['aliases']['alias']))
return;
$columns = array();
foreach ($config['aliases']['alias'] as $alias_id => $alias_name){
if ($alias_name['name'] == $src)
$columns['src'] = $alias_id;
elseif ($alias_name['name'] == $srcport)
$columns['srcport'] = $alias_id;
elseif ($alias_name['name'] == $dst )
$columns['dst'] = $alias_id;
elseif ($alias_name['name'] == $dstport)
$columns['dstport'] = $alias_id;
return $columns;
}
}
function form_output_row($name, $label, $content){
var_dump($content);die;
?>