File: 0.01.2a/web/node.action.php (View as Code)

1: 2: ob_start(); 3: require("include.php"); 4: $NATS->Start(); 5: if (!$NATS_Session->Check($NATS->DB)) 6: { 7: header("Location: ./?login_msg=Invalid+Or+Expired+Session"); 8: exit(); 9: } 10: if ($NATS_Session->userlevel<5) UL_Error("Action Node"); 11: $msg=""; 12: 13: switch($_REQUEST['action']) 14: { 15: case "delete": 16: if (!isset($_REQUEST['confirm'])) 17: { 18: $go="confirm.php?action=Delete+Node+".$_REQUEST['nodeid']."+and+all+associated+data&back="; 19: $go.=urlencode("node.action.php?action=delete&nodeid=".$_REQUEST['nodeid']."&confirm=1"); 20: header("Location: ".$go); 21: exit(); 22: } 23: // delete it and shit! 24: 25: // node + localtests + lt results 26: 27: $dnc=0; 28: $dnt=0; 29: $dnd=0; 30: $q="SELECT localtestid FROM fnlocaltest WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\""; 31: $r=$NATS->DB->Query($q); 32: while ($row=$NATS->DB->Fetch_Array($r)) 33: { 34: $dq="DELETE FROM fnrecord WHERE testid=\"L".$row['localtestid']."\""; 35: $NATS->DB->Query($dq); 36: $dnd+=$NATS->DB->Affected_Rows(); 37: $dq="DELETE FROM fnlocaltest WHERE localtestid=".$row['localtestid']; 38: $NATS->DB->Query($dq); 39: $dnt+=$NATS->DB->Affected_Rows(); 40: } 41: $NATS->DB->Free($r); 42: $dq="DELETE FROM fnnode WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\""; 43: $NATS->DB->Query($dq); 44: $dnc+=$NATS->DB->Affected_Rows(); 45: 46: // group links 47: $q="DELETE FROM fngrouplink WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\""; 48: $NATS->DB->Query($q); 49: 50: $msg="Node ".$_REQUEST['nodeid']." deleted (".$dnc." node, ".$dnt." tests, ".$dnd." records)"; 51: break; 52: 53: case "create": 54: // get highest weight 55: $hw=0; 56: $hq="SELECT weight FROM fnnode ORDER BY weight DESC LIMIT 0,1"; 57: $hr=$NATS->DB->Query($hq); 58: if ($hrow=$NATS->DB->Fetch_Array($hr)) $hw=($hrow['weight'])+10; 59: else $hw=10; 60: $NATS->DB->Free($hr); 61: $q="INSERT INTO fnnode(nodeid,weight) VALUES(\"".ss(strtolower($_REQUEST['nodeid']))."\",".$hw.")"; 62: $NATS->DB->Query($q); 63: if ($NATS->DB->Affected_Rows()>0) 64: { 65: header("Location: node.edit.php?nodeid=".strtolower($_REQUEST['nodeid'])); 66: exit(); 67: } 68: $msg="Failed to Create Node"; 69: break; 70: 71: case "move": 72: // get my weight 73: $q="SELECT weight FROM fnnode WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\""; 74: $r=$NATS->DB->Query($q); 75: $row=$NATS->DB->Fetch_Array($r); 76: $myweight=$row['weight']; 77: $NATS->DB->Free($r); 78: 79: // get next/prev one 80: $q="SELECT nodeid,weight FROM fnnode WHERE "; 81: if ($_REQUEST['dir']=="up") $q.="weight<".$myweight." ORDER BY weight DESC LIMIT 0,1"; 82: else $q.="weight>".$myweight." ORDER BY weight ASC LIMIT 0,1"; 83: $r=$NATS->DB->Query($q); 84: if ($row=$NATS->DB->Fetch_Array($r)) 85: { 86: // swap 'em 87: $uq="UPDATE fnnode SET weight=".$myweight." WHERE nodeid=\"".$row['nodeid']."\""; 88: $NATS->DB->Query($uq); 89: $uq="UPDATE fnnode SET weight=".$row['weight']." WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\""; 90: $NATS->DB->Query($uq); 91: $msg="Updated Node Display Order"; 92: } 93: else $msg="No Higher/Lower Node"; 94: break; 95: 96: 97: 98: default: $msg="Unknown Node Action"; 99: } 100: header("Location: main.php?message=".urlencode($msg)); 101: exit(); 102: 103: ?> 104: