File: 1.19.1b/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 ""; 542: 543: } 544: 545: echo ""; 552: 553: echo ""; 556: 557: echo ""; 561: 562: 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: $esubjects = array ( 527: 0 => $NATS->Lang->Item("aa.esubj.blank"), 528: 1 => $NATS->Lang->Item("aa.esubj.short"), 529: 2 => $NATS->Lang->Item("aa.esubj.long"), 530: 3 => $NATS->Lang->Item("aa.esubj.nodeid"), 531: ); 532: echo ""; 541: echo "
".$NATS->Lang->Item("aa.mtype")." : "; 546: echo ""; 551: echo "
".$NATS->Lang->Item("aa.eto")." : "; 554: echo ""; 555: echo "
Lang->Item("aa.update")."\">   ".$NATS->Lang->Item("aa.cancel")." | "; 558: echo "".$NATS->Lang->Item("aa.test")." | "; 559: echo "".$NATS->Lang->Item("aa.delete").""; 560: echo "


";
563: $NATS->DB->Free($r); 564: } 565: 566: $q="SELECT aaid,atype,aname FROM fnalertaction"; 567: $r=$NATS->DB->Query($q); 568: echo ""; 569: echo ""; 570: while ($row=$NATS->DB->Fetch_Array($r)) 571: { 572: echo ""; 574: echo ""; 577: } 578: echo "
".$NATS->Lang->Item("id")."".$NATS->Lang->Item("aa.name")."".$NATS->Lang->Item("aa.type")."
"; 573: echo "".$row['aaid']."".$row['aname'].""; 575: echo aat_atype($row['atype']); 576: echo "
";
579: 580: echo "
".$NATS->Lang->Item("aa.create")."
";
581: echo "

";
582: } 583: else if ($mode=="logs") 584: { 585: // Que ??!? 586: echo "System Logs

";
587: echo "System Event Log

";
588: 589: echo "

";
590: } 591: else if ($mode=="status") 592: { 593: // system healthcheck 594: 595: // usage data 596: //$q="SELECT COUNT(fnnode.nodeid),COUNT(fngroup.groupid),COUNT( FROM fnnode,fngroup"; 597: $q="SHOW TABLE STATUS LIKE \"fn%\""; 598: $r=$NATS->DB->Query($q); 599: 600: echo "FreeNATS ".$NATS->Lang->Item("system.status")."

";
601: 602: $tinfo=array(); 603: 604: echo "".$NATS->Lang->Item("status.size")."

";
605: 606: echo ""; 607: echo ""; 608: echo ""; 609: while ($row=$NATS->DB->Fetch_Array($r)) 610: { 611: echo ""; 612: echo ""; 621: } 622: 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).""; 613: if (isset($tinfo[$row['Name']])) echo $tinfo[$row['Name']]; 614: else echo " "; 615: if ($row['Data_free']>0) 616: { 617: echo " [".round($row['Data_free']/1024,0)."kb ".$NATS->Lang->Item("status.free")." - "; 618: echo "".$NATS->Lang->Item("status.optimise")."]"; 619: } 620: echo "
";
623: $NATS->DB->Free($r); 624: echo "

";
625: 626: echo "".$NATS->Lang->Item("status.running")."

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

";
630: if ($NATS->DB->Num_Rows($r)>0) 631: { 632: echo ""; 633: echo ""; 634: $nowx=time(); 635: $fifteenx=$nowx-(15*60); 636: $hourx=$nowx-(60*60); 637: while ($row=$NATS->DB->Fetch_Array($r)) 638: { 639: echo ""; 641: echo ""; 642: echo ""; 643: echo ""; 648: } 649: echo "
ID".$NATS->Lang->Item("node")."".$NATS->Lang->Item("started")."".$NATS->Lang->Item("notes")."
"; 640: echo $row['trid']."".nicedt($row['startx'])." - ".dtago($row['startx']).""; 644: if ($row['startx']<$hourx) echo $NATS->Lang->Item("status.run.error"); 645: else if($row['startx']<$fifteenx) echo $NATS->Lang->Item("status.run.warn"); 646: else echo " "; 647: echo "
";
650: } 651: $NATS->DB->Free($r); 652: echo "

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

";
655: $env_test_web=1; 656: include("environment.test.php"); 657: echo "
";
658: echo "".$NATS->Lang->Item("status.env.cli")."

";
659: $output=array(); 660: $return=0; 661: exec("php -q environment.test.php",$output,$return); 662: if ($return!=1) 663: { 664: echo "Error: PHP CLI Script did not seem to execute. PHP-CLI is required for FreeNATS (fatal error)
";
665: } 666: foreach($output as $line) 667: echo $line; 668: 669: echo "
";
670: echo "Click here for very detailed PHP environment information for web and CLI"; 671: 672: echo "

";
673: echo $NATS->Lang->Item("status.disclaim"); 674: echo "

";
675: 676: } 677: else if ($mode=="phpinfo") 678: { 679: echo "

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


";
680: $env_test_web=1; 681: include("environment.test.php"); 682: echo "
";
683: ob_start(); 684: phpinfo(); 685: $info=ob_get_contents(); 686: ob_end_clean(); 687: $info=preg_replace("//is","",$info); 688: echo "
"; 689: echo nl2br(strip_tags($info)); 690: echo "



\n";
691: 692: echo "

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


";
693: $output=array(); 694: $return=0; 695: exec("php -q environment.test.php full",$output,$return); 696: if ($return!=1) 697: { 698: echo "Error: PHP CLI Script did not seem to execute. PHP-CLI is required for FreeNATS (fatal error)
";
699: } 700: foreach($output as $line) 701: echo $line; 702: } 703: else if ($mode=="variables") 704: { 705: echo "".$NATS->Lang->Item("variables")." ".hlink("Variable")."

";
706: $q="SELECT * FROM fnconfig ORDER BY fnc_var ASC"; 707: $r=$NATS->DB->Query($q); 708: echo ""; 709: while ($row=$NATS->DB->Fetch_Array($r)) 710: { 711: echo "
";
712: echo ""; 713: echo ""; 714: echo ""; 715: echo ""; 716: echo ""; 718: echo ""; 719: echo ""; 720: echo ""; 723: echo ""; 724: echo ""; 725: } 726: echo "
";
727: echo ""; 728: echo ""; 729: echo ""; 730: echo ""; 731: echo ""; 732: echo ""; 733: echo ""; 734: echo ""; 735: echo "
"; 717: echo "=Lang->Item("save")."\"> "; 721: echo hlink("Var:".$row['fnc_var']); 722: echo "
=Lang->Item("create")."\">


";
736: } 737: else if ($mode=="sysinfo") 738: { 739: echo "FreeNATS ".$NATS->Lang->Item("sys.info")."

";
740: 741: echo "Version Information

";
742: echo ""; 743: echo ""; 744: echo ""; 745: echo ""; 746: echo "
".$NATS->Lang->Item("version").":".$NATS->Version."
".$NATS->Lang->Item("release").":".$NATS->Release."
".$NATS->Lang->Item("compound").":".$NATS->Version.$NATS->Release."


";
747: 748: echo "".$NATS->Lang->Item("reg.modules")."

";
749: echo ""; 750: echo ""; 751: echo ""; 752: foreach($NATS->Tests->QuickList as $key => $val) 753: { 754: echo ""; 763: } 764: echo "
".$NATS->Lang->Item("name")."".$NATS->Lang->Item("provides")."".$NATS->Lang->Item("revision")."".$NATS->Lang->Item("additional")."
"; 755: echo $NATS->Tests->Tests[$key]->name; 756: echo ""; 757: echo $NATS->Tests->Tests[$key]->type; 758: echo ""; 759: echo $NATS->Tests->Tests[$key]->revision; 760: echo ""; 761: echo $NATS->Tests->Tests[$key]->additional; 762: echo "


";
765: 766: echo "".$NATS->Lang->Item("reg.events")."

";
767: echo ""; 768: echo ""; 769: foreach($NATS->EventHandlers as $key => $val) 770: { 771: echo ""; 775: } 776: echo "
".$NATS->Lang->Item("event")."".$NATS->Lang->Item("handlers")."
".$key.""; 772: foreach($NATS->EventHandlers[$key] as $handler) 773: echo $handler."
";
774: echo "


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

";
778: $langs=$NATS->Lang->GetLanguages(); 779: foreach($langs as $code => $lang) 780: { 781: echo $code.": ".$lang."
";
782: } 783: echo "

";
784: } 785: else // catch-all 786: { 787: echo "

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

\n";
788: 789: $suspend = $NATS->Cfg->Get("site.tester.suspended",0) == 1 ? true : false; 790: echo "
"; 791: $col = $suspend ? "red" : "green"; 792: $txt = $suspend ? $NATS->Lang->Item("testing.suspended") : $NATS->Lang->Item("testing.not.suspended"); 793: $opt = $suspend ? $NATS->Lang->Item("testing.resume") : $NATS->Lang->Item("testing.suspend"); 794: $val = $suspend ? 0 : 1; 795: echo "".$txt." "; 796: echo ""; 797: echo ""; 798: echo ""; 799: echo "
";
800: 801: echo "  "; 802: echo "".$NATS->Lang->Item("alert.actions")."

";
803: 804: echo "  "; 805: echo "".$NATS->Lang->Item("sessions")."

";
806: 807: echo "  "; 808: echo "".$NATS->Lang->Item("schedules")."

";
809: 810: echo "  "; 811: echo "".$NATS->Lang->Item("rss.feed")."

";
812: 813: echo "

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

\n";
814: 815: echo "  "; 816: echo "".$NATS->Lang->Item("user.admin")."

";
817: 818: echo "  "; 819: echo "".$NATS->Lang->Item("variables")."

";
820: 821: echo "

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

\n";
822: 823: echo "  "; 824: echo "".$NATS->Lang->Item("file.manager")."

";
825: 826: if ($NATS->Cfg->Get("site.enable.adminsql",0)==1) 827: { 828: echo "  "; 829: echo "".$NATS->Lang->Item("sql.console")."

";
830: } 831: 832: echo "  "; 833: echo "".$NATS->Lang->Item("dns.console")."

";
834: 835: echo "  "; 836: echo "".$NATS->Lang->Item("backup.restore")."

";
837: 838: echo "

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

\n";
839: 840: echo "  "; 841: echo "".$NATS->Lang->Item("event.log")."

";
842: 843: echo "  "; 844: echo "".$NATS->Lang->Item("sys.status")."

";
845: 846: echo "  "; 847: echo "".$NATS->Lang->Item("sys.info")."

";
848: 849: /* 850: echo "  "; 851: echo "".$NATS->Lang->Item("user.admin")."

";
852: echo "  "; 853: echo "".$NATS->Lang->Item("event.log")."

";
854: echo "  "; 855: echo "".$NATS->Lang->Item("alert.actions")."

";
856: echo "  "; 857: echo "".$NATS->Lang->Item("variables")."

";
858: echo "  "; 859: echo "".$NATS->Lang->Item("sessions")."

";
860: echo "  "; 861: echo "".$NATS->Lang->Item("schedules")."

";
862: echo "  "; 863: echo "".$NATS->Lang->Item("file.manager")."

";
864: 865: if ($NATS->Cfg->Get("site.enable.adminsql",0)==1) 866: { 867: echo "  "; 868: echo "".$NATS->Lang->Item("sql.console")."

";
869: } 870: echo "  "; 871: echo "".$NATS->Lang->Item("dns.console")."

";
872: echo "  "; 873: echo "".$NATS->Lang->Item("backup.restore")."

";
874: echo "  "; 875: echo "".$NATS->Lang->Item("sys.status")."

";
876: echo "  "; 877: echo "".$NATS->Lang->Item("sys.info")."

";
878: echo "  "; 879: echo "".$NATS->Lang->Item("rss.feed")."

";
880: */ 881: } 882: 883: if ($mode!="") echo "".$NATS->Lang->Item("back.to.admin")."

";
884: ?> 885: 886: 887: 888: Screen_Footer(); 889: ?> 890: