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: