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: