File: 1.17.5a/server/web/admin.php (View as Code)

1: 2: /* ------------------------------------------------------------- 3: This file is part of FreeNATS 4: 5: FreeNATS is (C) Copyright 2008-2011 PurplePixie Systems 6: 7: FreeNATS is free software: you can redistribute it and/or modify 8: it under the terms of the GNU General Public License as published by 9: the Free Software Foundation, either version 3 of the License, or 10: (at your option) any later version. 11: 12: FreeNATS is distributed in the hope that it will be useful, 13: but WITHOUT ANY WARRANTY; without even the implied warranty of 14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15: GNU General Public License for more details. 16: 17: You should have received a copy of the GNU General Public License 18: along with FreeNATS. If not, see www.gnu.org/licenses 19: 20: For more information see www.purplepixie.org/freenats 21: -------------------------------------------------------------- */ 22: 23: ob_start(); 24: require("include.php"); 25: $NATS->Start(); 26: if (!$NATS_Session->Check($NATS->DB)) 27: { 28: header("Location: ./?login_msg=Invalid+Or+Expired+Session"); 29: exit(); 30: } 31: if ($NATS_Session->userlevel<9) UL_Error($NATS->Lang->Item("admin.interface")); 32: 33: if (isset($_REQUEST['action'])) 34: { 35: switch($_REQUEST['action']) 36: { 37: case "save_user": 38: $glock = isset($_REQUEST['grouplock']) && $_REQUEST['grouplock']==1 ? 1 : 0; 39: $q="UPDATE fnuser SET realname=\"".ss($_REQUEST['realname'])."\",userlevel=".ss($_REQUEST['userlevel']); 40: $q.=",grouplock=".ss($glock); 41: if ((isset($_REQUEST['pword']))&&($_REQUEST['pword']!="_NOTTHIS_")) $q.=",password=MD5(\"".ss($_REQUEST['pword'])."\")"; 42: $q.=" WHERE username=\"".ss($_REQUEST['username'])."\""; 43: $NATS->DB->Query($q); 44: 45: $update=false; 46: if ($NATS->DB->Affected_Rows()>0) $update=true; 47: 48: // Grouplock! 49: $q="DELETE FROM fngrouplock WHERE username=\"".ss($_REQUEST['username'])."\""; 50: $NATS->DB->Query($q); 51: 52: 53: 54: if (isset($_REQUEST['gl'])) 55: { 56: foreach($_REQUEST['gl'] as $id => $state) 57: { 58: if ($state == 1) 59: { 60: $iq="INSERT INTO fngrouplock(username,groupid) VALUES(\"".ss($_REQUEST['username'])."\",".ss($id).")"; 61: //echo $iq; 62: $NATS->DB->Query($iq); 63: } 64: } 65: } 66: 67: if (!$update) $amsg=$NATS->Lang->Item("save.user.fail"); 68: else $amsg=$NATS->Lang->Item("save.user.ok"); 69: break; 70: 71: case "create_user": 72: $q="INSERT INTO fnuser(username,password,realname,userlevel) VALUES(\"".ss($_REQUEST['username'])."\","; 73: $q.="MD5(\"".ss($_REQUEST['pword'])."\"),\"".ss($_REQUEST['realname'])."\",".ss($_REQUEST['userlevel']).")"; 74: $NATS->DB->Query($q); 75: //echo $q; 76: if ($NATS->DB->Affected_Rows()<=0) $amsg=$NATS->Lang->Item("create.user.fail"); 77: else $amsg=$NATS->Lang->Item("create.user.ok"); 78: break; 79: 80: case "delete_user": 81: /* - disabled for 0.02.44 to allow duplicate deletion 82: if ($_REQUEST['username']=="admin") 83: { 84: $amsg="Can't delete the admin user"; 85: break; 86: } 87: */ 88: if (!isset($_REQUEST['confirmed'])) 89: { 90: $back=urlencode("admin.php?action=delete_user&mode=users&username=".$_REQUEST['username']."&confirmed=1"); 91: $url="confirm.php?action=".urlencode($NATS->Lang->Item("delete.user"))."+".$_REQUEST['username']."&back=".$back; 92: header("Location: ".$url); 93: exit(); 94: } 95: $q="DELETE FROM fnuser WHERE username=\"".ss($_REQUEST['username'])."\""; 96: $NATS->DB->Query($q); 97: $amsg=$_REQUEST['username'].$NATS->Lang->Item("user.deleted"); 98: break; 99: 100: case "var_save": 101: if ($_REQUEST['new_var']=="") // delete 102: { 103: $q="DELETE FROM fnconfig WHERE fnc_var=\"".ss($_REQUEST['orig_var'])."\""; 104: } 105: else // update 106: { 107: $q="UPDATE fnconfig SET fnc_var=\"".ss($_REQUEST['new_var'])."\",fnc_val=\"".ss($_REQUEST['new_val'])."\" "; 108: $q.="WHERE fnc_var=\"".ss($_REQUEST['orig_var'])."\""; 109: } 110: $NATS->DB->Query($q); 111: if ($NATS->DB->Affected_Rows()<=0) $amsg=$NATS->Lang->Item("save.var.fail"); 112: else $amsg=$NATS->Lang->Item("save.var.ok"); 113: break; 114: case "var_new": 115: $q="INSERT INTO fnconfig(fnc_var,fnc_val) VALUES(\"".ss($_REQUEST['new_var'])."\",\"".ss($_REQUEST['new_val'])."\")"; 116: //echo $q; 117: $NATS->DB->Query($q); 118: if ($NATS->DB->Affected_Rows()<=0) $amsg=$NATS->Lang->Item("new.var.fail"); 119: else $amsg=$NATS->Lang->Item("new.var.ok"); 120: break; 121: 122: case "save_aa": 123: $q="UPDATE fnalertaction SET "; 124: $q.="atype=\"".ss($_REQUEST['atype'])."\","; 125: $q.="ctrlimit=".ss($_REQUEST['ctrlimit']).","; 126: $q.="ctrtoday=".ss($_REQUEST['ctrtoday']).","; 127: $q.="aname=\"".ss($_REQUEST['aname'])."\","; 128: $q.="scheduleid=".ss($_REQUEST['scheduleid']).","; 129: if (isset($_REQUEST['efrom'])) $q.="efrom=\"".ss($_REQUEST['efrom'])."\","; 130: $q.="etolist=\"".ss($_REQUEST['etolist'])."\","; 131: if (isset($_REQUEST['esubject'])) $q.="esubject=".ss($_REQUEST['esubject']).","; 132: $q.="etype=".ss($_REQUEST['etype']); 133: if (isset($_REQUEST['awarnings'])) $q.=",awarnings=".ss($_REQUEST['awarnings']); 134: else $q.=",awarnings=0"; 135: if (isset($_REQUEST['adecrease'])) $q.=",adecrease=".ss($_REQUEST['adecrease']); 136: else $q.=",adecrease=0"; 137: $q.=" WHERE aaid=".ss($_REQUEST['aaid']); 138: //echo $q; 139: $NATS->DB->Query($q); 140: if ($NATS->DB->Affected_Rows()<=0) $NATS->Lang->Item("changes.fail"); 141: else $amsg=$NATS->Lang->Item("changes.ok"); 142: break; 143: 144: case "action_test": 145: $q="SELECT mdata FROM fnalertaction WHERE aaid=".ss($_REQUEST['aaid'])." LIMIT 0,1"; 146: $r=$NATS->DB->Query($q); 147: $row=$NATS->DB->Fetch_Array($r); 148: $oldm=$row['mdata']; 149: $q="UPDATE fnalertaction SET mdata=\"** ACTION TEST **\" WHERE aaid=".ss($_REQUEST['aaid']); 150: $NATS->DB->Query($q); 151: $NATS->ActionFlush(); 152: $q="UPDATE fnalertaction SET mdata=\"".ss($oldm)."\" WHERE aaid=".ss($_REQUEST['aaid']); 153: $NATS->DB->Query($q); 154: $amsg=$NATS->Lang->Item("aa.testflush"); 155: break; 156: 157: case "action_create": 158: $q="INSERT INTO fnalertaction(atype) VALUES(\"\")"; 159: $NATS->DB->Query($q); 160: $amsg=$NATS->Lang->Item("changes.ok"); 161: $_REQUEST['aaid']=$NATS->DB->Insert_Id(); 162: break; 163: 164: case "action_delete": 165: if (!isset($_REQUEST['confirmed'])) 166: { 167: $back=urlencode("admin.php?mode=alertactions&aaid_del=".$_REQUEST['aaid_del']."&action=action_delete&confirmed=1"); 168: $url="confirm.php?action=".urlencode($NATS->Lang->Item("aa.delete"))."&back=".$back; 169: header("Location: ".$url); 170: exit(); 171: } 172: // otherwise confirmed 173: $q="DELETE FROM fnalertaction WHERE aaid=".ss($_REQUEST['aaid_del']); 174: $NATS->DB->Query($q); 175: if ($NATS->DB->Affected_Rows()>0) $amsg=$NATS->Lang->Item("changes.ok"); 176: else $amsg=$NATS->Lang->Item("changes.fail"); 177: $q="DELETE FROM fnnalink WHERE aaid=".ss($_REQUEST['aaid_del']); 178: $NATS->DB->Query($q); 179: break; 180: 181: case "optimize": 182: $q="OPTIMIZE TABLE ".ss($_REQUEST['table']); 183: $NATS->DB->Query($q); 184: $amsg=$NATS->Lang->Item("optimised.ok")." ".$_REQUEST['table']; 185: break; 186: 187: case "test_suspend": 188: $s = isset($_REQUEST['suspend']) && $_REQUEST['suspend']==1 ? 1 : 0; 189: $NATS->Cfg->Set("site.tester.suspended",$s,true); 190: break; 191: 192: } 193: } 194: 195: ob_end_flush(); 196: Screen_Header($NATS->Lang->Item("admin.interface"),1,1,"","main","admin"); 197: 198: if (isset($_REQUEST['mode'])) $mode=$_REQUEST['mode']; 199: else $mode=""; 200: 201: if (isset($_REQUEST['message'])) echo "
".$_REQUEST['message']."
";
202: if (isset($amsg)) echo "
".$amsg."
";
203: 204: echo "
";
205: if (isset($_REQUEST['updatecheck'])) 206: { 207: // check for updates 208: $dq="?CheckVersion=".$NATS->Version."&JSMode=1"; 209: $dl="http://www.purplepixie.org/freenats/download.php"; 210: $du=$dl.$dq; 211: /* old method 212: $cp=@fopen($du,"r"); 213: if ($cp>0) 214: { 215: $cs=@fgets($cp,128); 216: @fclose($cp); 217: if ($cs=="0") echo "System Up to Date
";
218: else echo "Update Available: ".$cs."
";
219: } 220: else echo "Error Checking for Updates
";
221: */ 222: echo $NATS->Lang->Item("checking.updates").": "; 223: echo "\n"; 224: echo "

";
225: } 226: else if ($mode=="") 227: { 228: echo "".$NATS->Lang->Item("check.updates")."

";
229: } 230: 231: function tul($l) 232: { 233: global $NATS; 234: if ($l>9) return $NATS->Lang->Item("ul.admin"); 235: if ($l>4) return $NATS->Lang->Item("ul.power"); 236: if ($l>0) return $NATS->Lang->Item("ul.normal"); 237: return $NATS->Lang->Item("ul.disabled"); 238: } 239: 240: function aat_etype($type) 241: { 242: global $NATS; 243: switch ($type) 244: { 245: case 0: return $NATS->Lang->Item("aae.short"); 246: case 1: return $NATS->Lang->Item("aae.long"); 247: default: return $NATS->Lang->Item("Unknown"); 248: } 249: } 250: 251: function aat_esub($type) 252: { 253: global $NATS; 254: switch ($type) 255: { 256: case 0: return $NATS->Lang->Item("aae.sub.blank"); 257: case 1: return $NATS->Lang->Item("aae.sub.short"); 258: case 2: return $NATS->Lang->Item("aae.sub.long"); 259: default: return $NATS->Lang->Item("unknown"); 260: } 261: } 262: 263: function aat_atype($type) 264: { 265: global $NATS; 266: switch($type) 267: { 268: case "": case "Disabled": return $NATS->Lang->Item("aatype.disabled"); 269: case "email": return $NATS->Lang->Item("aatype.email"); 270: case "url": return $NATS->Lang->Item("aatype.url"); 271: case "mqueue": return $NATS->Lang->Item("aatype.mqueue"); 272: default: return $NATS->Lang->Item("unknown")." (".$type.")"; 273: } 274: } 275: 276: if ($mode=="users") 277: { 278: echo "".$NATS->Lang->Item("user.admin")."

";
279: 280: 281: 282: 283: $q="SELECT username,realname,userlevel,grouplock FROM fnuser"; 284: $r=$NATS->DB->Query($q); 285: echo ""; 286: echo ""; 287: echo ""; 288: echo ""; 289: while ($row=$NATS->DB->Fetch_Array($r)) 290: { 291: echo "
";
292: echo ""; 293: echo ""; 294: echo ""; 295: echo ""; 296: echo ""; 297: echo ""; 305: echo ""; 306: echo ""; 307: echo ""; 308: echo ""; 309: 310: echo ""; 311: echo ""; 343: echo ""; 344: 345: echo ""; 346: } 347: echo "
";
348: echo ""; 349: echo ""; 350: echo ""; 351: echo ""; 352: echo ""; 358: echo ""; 359: echo ""; 360: echo ""; 361: echo "
".$NATS->Lang->Item("username")." ".$NATS->Lang->Item("real.name")."".$NATS->Lang->Item("user.level")."".$NATS->Lang->Item("password")."".$NATS->Lang->Item("options")."
".$row['username'].""; 304: echo "".$NATS->Lang->Item("extended.user")."Lang->Item("save")."\"> ".$NATS->Lang->Item("delete")."
"; 312: 313: echo "
"; 314: 315: $check = $row['grouplock'] == 1 ? " checked" : ""; 316: echo " "; 317: echo $NATS->Lang->Item("user.grouplock"); 318: echo " (".$NATS->Lang->Item("user.grouplock.warning").")

";
319: 320: $gq = "SELECT * FROM fngroup"; 321: $gr=$NATS->DB->Query($gq); 322: $groups=array(); 323: while ($grow=$NATS->DB->Fetch_Array($gr)) 324: $groups[$grow['groupid']]=$grow['groupname']; 325: $NATS->DB->Free($gr); 326: 327: $mygq = "SELECT * FROM fngrouplock WHERE username=\"".ss($row['username'])."\""; 328: $mygr = $NATS->DB->Query($mygq); 329: $mygroups=array(); 330: while ($myrow = $NATS->DB->Fetch_Array($mygr)) 331: $mygroups[]=$myrow['groupid']; 332: $NATS->DB->Free($mygr); 333: 334: foreach($groups as $id => $name) 335: { 336: $check = in_array($id,$mygroups) ? " checked" : ""; 337: echo " ".$name."
";
338: } 339: 340: echo "

";
341: 342: echo "
Lang->Item("create.user")."\">

";
362: echo "
";
363: $NATS->DB->Free($r); 364: } 365: else if ($mode=="nodetestsessions") 366: { 367: echo "".$NATS->Lang->Item("sessions.for")." ".$_REQUEST['nodeid']."

";
368: echo "".$NATS->Lang->Item("sessions.running.for")." ".$_REQUEST['nodeid']."
";
369: $q="SELECT * FROM fntestrun WHERE fnode=\"".ss($_REQUEST['nodeid'])."\" AND finishx=0 ORDER BY trid DESC"; 370: $r=$NATS->DB->Query($q); 371: if ($NATS->DB->Num_Rows($r)==0) echo "".$NATS->Lang->Item("sessions.not.running")."
";
372: echo ""; 373: while ($row=$NATS->DB->Fetch_Array($r)) 374: { 375: echo ""; 376: echo ""; 381: } 382: echo "
run/".$row['trid']."".nicedt($row['startx'])." - "; 377: if ($row['finishx']>0) echo nicedt($row['finishx']); 378: else echo $NATS->Lang->Item("sessions.stillrunning"); 379: echo " (".$NATS->Lang->Item("event.log").")"; 380: echo "
";
383: $NATS->DB->Free($r); 384: echo "
";
385: echo "
";
386: 387: echo "100 ".$NATS->Lang->Item("sessions.previous")." ".$_REQUEST['nodeid']."
";
388: $q="SELECT * FROM fntestrun WHERE fnode=\"".ss($_REQUEST['nodeid'])."\" ORDER BY trid DESC LIMIT 0,100"; 389: $r=$NATS->DB->Query($q); 390: if ($NATS->DB->Num_Rows($r)==0) echo "".$NATS->Lang->Item("sessions.previous.none")."
";
391: echo ""; 392: while ($row=$NATS->DB->Fetch_Array($r)) 393: { 394: echo ""; 395: echo ""; 400: } 401: echo "
run/".$row['trid']."".nicedt($row['startx'])." - "; 396: if ($row['finishx']>0) echo nicedt($row['finishx']); 397: else echo $NATS->Lang->Item("sessions.stillrunning"); 398: echo " (".$NATS->Lang->Item("event.log").")"; 399: echo "
";
402: $NATS->DB->Free($r); 403: echo "
";
404: echo "
";
405: 406: } 407: else if ($mode=="testsessions") 408: { 409: echo "".$NATS->Lang->Item("sessions.running")."

";
410: $q="SELECT * FROM fntestrun WHERE finishx=0 ORDER BY trid DESC"; 411: $r=$NATS->DB->Query($q); 412: if ($NATS->DB->Num_Rows($r)==0) echo "".$NATS->Lang->Item("sessions.not.running")."
";
413: echo ""; 414: while ($row=$NATS->DB->Fetch_Array($r)) 415: { 416: echo ""; 417: echo ""; 422: } 423: echo "
run/".$row['trid']."".nicedt($row['startx'])." - "; 418: if ($row['finishx']>0) echo nicedt($row['finishx']); 419: else echo $NATS->Lang->Item("sessions.stillrunning"); 420: echo " (".$NATS->Lang->Item("event.log").")"; 421: echo "
";
424: $NATS->DB->Free($r); 425: echo "
";
426: echo "
"; 427: echo ""; 428: echo "100 ".$NATS->Lang->Item("sessions.previous")." "; 429: $q="SELECT nodeid,nodename FROM fnnode ORDER BY weight ASC"; 430: $r=$NATS->DB->Query($q); 431: echo "
";
437: } 438: else if ($mode=="alertactions") 439: { 440: echo "".$NATS->Lang->Item("alert.actions")."

";
441: 442: if (isset($_REQUEST['aaid'])) 443: { // view/edit aaid 444: $q="SELECT * FROM fnalertaction WHERE aaid=".ss($_REQUEST['aaid']); 445: $r=$NATS->DB->Query($q); 446: if (!$row=$NATS->DB->Fetch_Array($r)) 447: { 448: echo "Error Fetching AAID

";
449: Screen_Footer(); 450: exit(); 451: } 452: echo ""; 453: echo "
";
454: echo ""; 455: echo ""; 456: echo ""; 457: echo ""; 458: 459: echo ""; 460: echo ""; 463: 464: echo ""; 473: 474: echo ""; 489: 490: 491: echo ""; 492: if ($row['awarnings']==1) $s=" checked"; 493: else $s=""; 494: echo ""; 495: 496: echo ""; 497: if ($row['adecrease']==1) $s=" checked"; 498: else $s=""; 499: echo ""; 500: 501: echo ""; 502: echo ""; 506: 507: echo ""; 508: echo ""; 516: 517: if ($row['atype']!="url") 518: { 519: 520: echo ""; 521: echo ""; 524: 525: echo ""; 533: 534: } 535: 536: echo ""; 543: 544: echo ""; 547: 548: echo ""; 552: 553: echo "
".$NATS->Lang->Item("id")." : action/".$_REQUEST['aaid']."
".$NATS->Lang->Item("aa.name")." : "; 461: echo ""; 462: echo "
".$NATS->Lang->Item("aa.type")." : "; 465: echo ""; 472: echo "
".$NATS->Lang->Item("schedule")." : "; 475: echo ""; 486: $NATS->DB->Free($sr); 487: echo " ".hlink("AlertSchedule"); 488: echo "
".$NATS->Lang->Item("warnings")." : ".hlink("AAction:Warnings")."
".$NATS->Lang->Item("decreases")." : ".hlink("AAction:Decreases")."
".$NATS->Lang->Item("aa.limit")." : "; 503: echo " "; 504: echo hlink("AAction:Limit"); 505: echo "
".$NATS->Lang->Item("aa.counter")." : "; 509: echo " "; 510: echo hlink("AAction:Counter"); 511: echo " (for "; 512: if ($row['ctrdate']=="") echo "unknown"; 513: else echo substr($row['ctrdate'],6,2)."/".substr($row['ctrdate'],4,2)."/".substr($row['ctrdate'],0,4); 514: echo ")"; 515: echo "
".$NATS->Lang->Item("aa.efrom")." : "; 522: echo ""; 523: echo "
".$NATS->Lang->Item("aa.esubj")." : "; 526: echo ""; 532: echo "
".$NATS->Lang->Item("aa.mtype")." : "; 537: echo ""; 542: echo "
".$NATS->Lang->Item("aa.eto")." : "; 545: echo ""; 546: echo "
Lang->Item("aa.update")."\">   ".$NATS->Lang->Item("aa.cancel")." | "; 549: echo "".$NATS->Lang->Item("aa.test")." | "; 550: echo "".$NATS->Lang->Item("aa.delete").""; 551: echo "


";
554: $NATS->DB->Free($r); 555: } 556: 557: $q="SELECT aaid,atype,aname FROM fnalertaction"; 558: $r=$NATS->DB->Query($q); 559: echo ""; 560: echo ""; 561: while ($row=$NATS->DB->Fetch_Array($r)) 562: { 563: echo ""; 565: echo ""; 568: } 569: echo "
".$NATS->Lang->Item("id")."".$NATS->Lang->Item("aa.name")."".$NATS->Lang->Item("aa.type")."
"; 564: echo "".$row['aaid']."".$row['aname'].""; 566: echo aat_atype($row['atype']); 567: echo "
";
570: 571: echo "
".$NATS->Lang->Item("aa.create")."
";
572: echo "

";
573: } 574: else if ($mode=="logs") 575: { 576: // Que ??!? 577: echo "System Logs

";
578: echo "System Event Log

";
579: 580: echo "

";
581: } 582: else if ($mode=="status") 583: { 584: // system healthcheck 585: 586: // usage data 587: //$q="SELECT COUNT(fnnode.nodeid),COUNT(fngroup.groupid),COUNT( FROM fnnode,fngroup"; 588: $q="SHOW TABLE STATUS LIKE \"fn%\""; 589: $r=$NATS->DB->Query($q); 590: 591: echo "FreeNATS ".$NATS->Lang->Item("system.status")."

";
592: 593: $tinfo=array(); 594: 595: echo "".$NATS->Lang->Item("status.size")."

";
596: 597: echo ""; 598: echo ""; 599: echo ""; 600: while ($row=$NATS->DB->Fetch_Array($r)) 601: { 602: echo ""; 603: echo ""; 612: } 613: echo "
".$NATS->Lang->Item("status.tname")."".$NATS->Lang->Item("status.tsize")."".$NATS->Lang->Item("status.tsize.kb")."".$NATS->Lang->Item("status.tother")."
".$row['Name']."".$row['Rows']."".round($row['Data_length']/1024,0).""; 604: if (isset($tinfo[$row['Name']])) echo $tinfo[$row['Name']]; 605: else echo " "; 606: if ($row['Data_free']>0) 607: { 608: echo " [".round($row['Data_free']/1024,0)."kb ".$NATS->Lang->Item("status.free")." - "; 609: echo "".$NATS->Lang->Item("status.optimise")."]"; 610: } 611: echo "
";
614: $NATS->DB->Free($r); 615: echo "

";
616: 617: echo "".$NATS->Lang->Item("status.running")."

";
618: $q="SELECT * FROM fntestrun WHERE finishx=0"; 619: $r=$NATS->DB->Query($q); 620: echo "".$NATS->DB->Num_Rows($r)." ".$NATS->Lang->Item("status.running")."

";
621: if ($NATS->DB->Num_Rows($r)>0) 622: { 623: echo ""; 624: echo ""; 625: $nowx=time(); 626: $fifteenx=$nowx-(15*60); 627: $hourx=$nowx-(60*60); 628: while ($row=$NATS->DB->Fetch_Array($r)) 629: { 630: echo ""; 632: echo ""; 633: echo ""; 634: echo ""; 639: } 640: echo "
ID".$NATS->Lang->Item("node")."".$NATS->Lang->Item("started")."".$NATS->Lang->Item("notes")."
"; 631: echo $row['trid']."".nicedt($row['startx'])." - ".dtago($row['startx']).""; 635: if ($row['startx']<$hourx) echo $NATS->Lang->Item("status.run.error"); 636: else if($row['startx']<$fifteenx) echo $NATS->Lang->Item("status.run.warn"); 637: else echo " "; 638: echo "
";
641: } 642: $NATS->DB->Free($r); 643: echo "

";
644: 645: echo "".$NATS->Lang->Item("status.env.http")."

";
646: $env_test_web=1; 647: include("environment.test.php"); 648: echo "
";
649: echo "".$NATS->Lang->Item("status.env.cli")."

";
650: $output=array(); 651: $return=0; 652: exec("php -q environment.test.php",$output,$return); 653: if ($return!=1) 654: { 655: echo "Error: PHP CLI Script did not seem to execute. PHP-CLI is required for FreeNATS (fatal error)
";
656: } 657: foreach($output as $line) 658: echo $line; 659: 660: echo "
";
661: echo "Click here for very detailed PHP environment information for web and CLI"; 662: 663: echo "

";
664: echo $NATS->Lang->Item("status.disclaim"); 665: echo "

";
666: 667: } 668: else if ($mode=="phpinfo") 669: { 670: echo "

".$NATS->Lang->Item("status.env.http")."


";
671: $env_test_web=1; 672: include("environment.test.php"); 673: echo "
";
674: ob_start(); 675: phpinfo(); 676: $info=ob_get_contents(); 677: ob_end_clean(); 678: $info=preg_replace("//is","",$info); 679: echo "
"; 680: echo nl2br(strip_tags($info)); 681: echo "



\n";
682: 683: echo "

".$NATS->Lang->Item("status.env.cli")."


";
684: $output=array(); 685: $return=0; 686: exec("php -q environment.test.php full",$output,$return); 687: if ($return!=1) 688: { 689: echo "Error: PHP CLI Script did not seem to execute. PHP-CLI is required for FreeNATS (fatal error)
";
690: } 691: foreach($output as $line) 692: echo $line; 693: } 694: else if ($mode=="variables") 695: { 696: echo "".$NATS->Lang->Item("variables")." ".hlink("Variable")."

";
697: $q="SELECT * FROM fnconfig ORDER BY fnc_var ASC"; 698: $r=$NATS->DB->Query($q); 699: echo ""; 700: while ($row=$NATS->DB->Fetch_Array($r)) 701: { 702: echo "
";
703: echo ""; 704: echo ""; 705: echo ""; 706: echo ""; 707: echo ""; 709: echo ""; 710: echo ""; 711: echo ""; 714: echo ""; 715: echo ""; 716: } 717: echo "
";
718: echo ""; 719: echo ""; 720: echo ""; 721: echo ""; 722: echo ""; 723: echo ""; 724: echo ""; 725: echo ""; 726: echo "
"; 708: echo "=Lang->Item("save")."\"> "; 712: echo hlink("Var:".$row['fnc_var']); 713: echo "
=Lang->Item("create")."\">


";
727: } 728: else if ($mode=="sysinfo") 729: { 730: echo "FreeNATS ".$NATS->Lang->Item("sys.info")."

";
731: 732: echo "Version Information

";
733: echo ""; 734: echo ""; 735: echo ""; 736: echo ""; 737: echo "
".$NATS->Lang->Item("version").":".$NATS->Version."
".$NATS->Lang->Item("release").":".$NATS->Release."
".$NATS->Lang->Item("compound").":".$NATS->Version.$NATS->Release."


";
738: 739: echo "".$NATS->Lang->Item("reg.modules")."

";
740: echo ""; 741: echo ""; 742: echo ""; 743: foreach($NATS->Tests->QuickList as $key => $val) 744: { 745: echo ""; 754: } 755: echo "
".$NATS->Lang->Item("name")."".$NATS->Lang->Item("provides")."".$NATS->Lang->Item("revision")."".$NATS->Lang->Item("additional")."
"; 746: echo $NATS->Tests->Tests[$key]->name; 747: echo ""; 748: echo $NATS->Tests->Tests[$key]->type; 749: echo ""; 750: echo $NATS->Tests->Tests[$key]->revision; 751: echo ""; 752: echo $NATS->Tests->Tests[$key]->additional; 753: echo "


";
756: 757: echo "".$NATS->Lang->Item("reg.events")."

";
758: echo ""; 759: echo ""; 760: foreach($NATS->EventHandlers as $key => $val) 761: { 762: echo ""; 766: } 767: echo "
".$NATS->Lang->Item("event")."".$NATS->Lang->Item("handlers")."
".$key.""; 763: foreach($NATS->EventHandlers[$key] as $handler) 764: echo $handler."
";
765: echo "


";
768: echo "".$NATS->Lang->Item("reg.languages")."

";
769: $langs=$NATS->Lang->GetLanguages(); 770: foreach($langs as $code => $lang) 771: { 772: echo $code.": ".$lang."
";
773: } 774: echo "

";
775: } 776: else // catch-all 777: { 778: echo "

".$NATS->Lang->Item("tests.alerting")."

\n";
779: 780: $suspend = $NATS->Cfg->Get("site.tester.suspended",0) == 1 ? true : false; 781: echo "
"; 782: $col = $suspend ? "red" : "green"; 783: $txt = $suspend ? $NATS->Lang->Item("testing.suspended") : $NATS->Lang->Item("testing.not.suspended"); 784: $opt = $suspend ? $NATS->Lang->Item("testing.resume") : $NATS->Lang->Item("testing.suspend"); 785: $val = $suspend ? 0 : 1; 786: echo "".$txt." "; 787: echo ""; 788: echo ""; 789: echo ""; 790: echo "
";
791: 792: echo "  "; 793: echo "".$NATS->Lang->Item("alert.actions")."

";
794: 795: echo "  "; 796: echo "".$NATS->Lang->Item("sessions")."

";
797: 798: echo "  "; 799: echo "".$NATS->Lang->Item("schedules")."

";
800: 801: echo "  "; 802: echo "".$NATS->Lang->Item("rss.feed")."

";
803: 804: echo "

".$NATS->Lang->Item("system.settings")."

\n";
805: 806: echo "  "; 807: echo "".$NATS->Lang->Item("user.admin")."

";
808: 809: echo "  "; 810: echo "".$NATS->Lang->Item("variables")."

";
811: 812: echo "

".$NATS->Lang->Item("tools")."

\n";
813: 814: echo "  "; 815: echo "".$NATS->Lang->Item("file.manager")."

";
816: 817: if ($NATS->Cfg->Get("site.enable.adminsql",0)==1) 818: { 819: echo "  "; 820: echo "".$NATS->Lang->Item("sql.console")."

";
821: } 822: 823: echo "  "; 824: echo "".$NATS->Lang->Item("dns.console")."

";
825: 826: echo "  "; 827: echo "".$NATS->Lang->Item("backup.restore")."

";
828: 829: echo "

".$NATS->Lang->Item("logs.info")."

\n";
830: 831: echo "  "; 832: echo "".$NATS->Lang->Item("event.log")."

";
833: 834: echo "  "; 835: echo "".$NATS->Lang->Item("sys.status")."

";
836: 837: echo "  "; 838: echo "".$NATS->Lang->Item("sys.info")."

";
839: 840: /* 841: echo "  "; 842: echo "".$NATS->Lang->Item("user.admin")."

";
843: echo "  "; 844: echo "".$NATS->Lang->Item("event.log")."

";
845: echo "  "; 846: echo "".$NATS->Lang->Item("alert.actions")."

";
847: echo "  "; 848: echo "".$NATS->Lang->Item("variables")."

";
849: echo "  "; 850: echo "".$NATS->Lang->Item("sessions")."

";
851: echo "  "; 852: echo "".$NATS->Lang->Item("schedules")."

";
853: echo "  "; 854: echo "".$NATS->Lang->Item("file.manager")."

";
855: 856: if ($NATS->Cfg->Get("site.enable.adminsql",0)==1) 857: { 858: echo "  "; 859: echo "".$NATS->Lang->Item("sql.console")."

";
860: } 861: echo "  "; 862: echo "".$NATS->Lang->Item("dns.console")."

";
863: echo "  "; 864: echo "".$NATS->Lang->Item("backup.restore")."

";
865: echo "  "; 866: echo "".$NATS->Lang->Item("sys.status")."

";
867: echo "  "; 868: echo "".$NATS->Lang->Item("sys.info")."

";
869: echo "  "; 870: echo "".$NATS->Lang->Item("rss.feed")."

";
871: */ 872: } 873: 874: if ($mode!="") echo "".$NATS->Lang->Item("back.to.admin")."

";
875: ?> 876: 877: 878: 879: Screen_Footer(); 880: ?> 881: