File: 0.00.0a/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: 47: $msg="Node ".$_REQUEST['nodeid']." deleted (".$dnc." node, ".$dnt." tests, ".$dnd." records)"; 48: break; 49: 50: case "create": 51: $q="INSERT INTO fnnode(nodeid) VALUES(\"".ss(strtolower($_REQUEST['nodeid']))."\")"; 52: $NATS->DB->Query($q); 53: if ($NATS->DB->Affected_Rows()>0) 54: { 55: header("Location: node.edit.php?nodeid=".strtolower($_REQUEST['nodeid'])); 56: exit(); 57: } 58: $msg="Failed to Create Node"; 59: break; 60: 61: case "move": 62: // get my weight 63: $q="SELECT weight FROM fnnode WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\""; 64: $r=$NATS->DB->Query($q); 65: $row=$NATS->DB->Fetch_Array($r); 66: $myweight=$row['weight']; 67: $NATS->DB->Free($r); 68: 69: // get next/prev one 70: $q="SELECT nodeid,weight FROM fnnode WHERE "; 71: if ($_REQUEST['dir']=="up") $q.="weight<".$myweight." ORDER BY weight DESC LIMIT 0,1"; 72: else $q.="weight>".$myweight." ORDER BY weight ASC LIMIT 0,1"; 73: $r=$NATS->DB->Query($q); 74: if ($row=$NATS->DB->Fetch_Array($r)) 75: { 76: // swap 'em 77: $uq="UPDATE fnnode SET weight=".$myweight." WHERE nodeid=\"".$row['nodeid']."\""; 78: $NATS->DB->Query($uq); 79: $uq="UPDATE fnnode SET weight=".$row['weight']." WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\""; 80: $NATS->DB->Query($uq); 81: $msg="Updated Node Display Order"; 82: } 83: else $msg="No Higher/Lower Node"; 84: break; 85: 86: 87: 88: default: $msg="Unknown Node Action"; 89: } 90: header("Location: main.php?message=".urlencode($msg)); 91: exit(); 92: 93: ?> 94: