/lenasys/0.1

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/0.1

« back to all changes in this revision

Viewing changes to trunk/DuggaSys/quizSystem/quiz/index.php

  • Committer: Henrik G.
  • Date: 2013-03-26 23:22:55 UTC
  • Revision ID: henrik.gustavsson@his.se-20130326232255-ik6snyatlbkf3zs1
First seed of Lenasys ... Needs to be Organized Further

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
if(isset($_POST['listVariantObjects'])){
 
3
        
 
4
        //Used to update the list of dataobjects stored for each quiz variant
 
5
        function updateDataObjectList($quizNr, $qVarNr, $courseName, $pdo){
 
6
                $queryString = "SELECT QuizVariantObject.id
 
7
                                                FROM QuizVariantObject
 
8
                                                WHERE QuizVariantObject.quizNr=:QNR
 
9
                                                        AND QuizVariantObject.qVarNr=:QVNR
 
10
                                                        AND QuizVariantObject.quizCourseName=:CNAME;";
 
11
                $stmt = $pdo->prepare($queryString);
 
12
                $stmt->bindParam(':QVNR', $qVarNr);
 
13
                $stmt->bindParam(':QNR', $quizNr);
 
14
                $stmt->bindParam(':CNAME', $courseName);
 
15
                $stmt->execute();
 
16
                $quizVariantIds=$stmt->fetchAll(PDO::FETCH_ASSOC);
 
17
                $dataObjectsString="";
 
18
                foreach($quizVariantIds as $objectId){
 
19
                        $dataObjectsString.=$objectId['id']." ";
 
20
                }
 
21
                $dataObjectsString=trim($dataObjectsString);
 
22
                $updateString = "UPDATE QuizVariant 
 
23
                                                 SET QuizVariant.quizObjectIDs=:OBJECTIDS
 
24
                                                 WHERE QuizVariant.qVarNr=:QVNR
 
25
                                                        AND QuizVariant.quizNr=:QNR 
 
26
                                                        AND QuizVariant.quizCourseName=:CNAME;";
 
27
                $updateStmt = $pdo->prepare($updateString);
 
28
                $updateStmt->bindParam(':OBJECTIDS', $dataObjectsString);
 
29
                $updateStmt->bindParam(':QNR', $quizNr);
 
30
                $updateStmt->bindParam(':QVNR', $qVarNr);
 
31
                $updateStmt->bindParam(':CNAME', $courseName);
 
32
                $updateStmt->execute();
 
33
                /*
 
34
                if($updateStmt->execute()){
 
35
                        $userMsg.=" Object ID list for quiz ".$quizNr." variant ".$qVarNr." successfully updated"; 
 
36
                } else {
 
37
                        $errorMsg.="ERROR: Object ID list for quiz ".$quizNr." variant ".$qVarNr." FAILED to update"; 
 
38
                }*/
 
39
                $updateStmt->closeCursor();
 
40
        }
 
41
        
 
42
        //updateDataObject
 
43
        if(isset($_POST['updateDataObject'])){
 
44
                $updateString = "UPDATE QuizVariantObject 
 
45
                                                 SET QuizVariantObject.id=:NEWID, QuizVariantObject.objectData=:OBJECTDATA
 
46
                                                 WHERE QuizVariantObject.id=:ID
 
47
                                                        AND QuizVariantObject.qVarNr=:QVNR
 
48
                                                        AND QuizVariantObject.quizNr=:QNR 
 
49
                                                        AND QuizVariantObject.quizCourseName=:CNAME;";
 
50
                $updateStmt = $pdo->prepare($updateString);
 
51
                $updateStmt->bindParam(':ID', $_POST['objectId']);
 
52
                $updateStmt->bindParam(':NEWID', $_POST['newObjectId']);
 
53
                $objectData=htmlentities($_POST['objectData'], ENT_QUOTES, "UTF-8");
 
54
                $updateStmt->bindParam(':OBJECTDATA', $objectData);
 
55
                $updateStmt->bindParam(':QNR', $_POST['quizNr']);
 
56
                $updateStmt->bindParam(':QVNR', $_POST['qVarNr']);
 
57
                $updateStmt->bindParam(':CNAME', $_POST['courseName']);
 
58
                if($updateStmt->execute()){
 
59
                        $userMsg.="Object successfully updated"; 
 
60
                        $updatedObjectId=$_POST['newObjectId'];
 
61
                        $objectUpdateMsg="Saved";
 
62
                } else {
 
63
                        $errorMsg.="ERROR: Object update failed";
 
64
                        $updatedObjectId=$_POST['newObjectId'];
 
65
                        $objectUpdateMsg="Failed";
 
66
                }
 
67
                $updateStmt->closeCursor();
 
68
                updateDataObjectList($_POST['quizNr'], $_POST['qVarNr'], $_POST['courseName'], $pdo);
 
69
        }
 
70
        
 
71
        //deleteDataObject
 
72
        if(isset($_POST['deleteDataObject'])){
 
73
                // $deleteQuery = "DELETE FROM QuizVariantObject 
 
74
                                // WHERE QuizVariantObject.id=:ID
 
75
                                                        // AND QuizVariantObject.qVarNr=:QVNR 
 
76
                                                        // AND QuizVariantObject.quizNr=:QNR 
 
77
                                                        // AND QuizVariantObject.quizCourseName=:CNAME";
 
78
                // $deleteStmt = $pdo->prepare($deleteQuery);
 
79
                // $deleteStmt->bindParam(':ID', $_POST['objectId']);
 
80
                // $deleteStmt->bindParam(':QNR', $_POST['quizNr']);
 
81
                // $deleteStmt->bindParam(':CNAME', $_POST['courseName']);
 
82
                // $deleteStmt->bindParam(':QVNR', $_POST['qVarNr']);
 
83
                // if($deleteStmt->execute()){
 
84
                        // $userMsg.="Object ID ".$_POST['objectId']." successfully deleted"; 
 
85
                // } else {
 
86
                        // $errorMsg.="ERROR: Object ID ".$_POST['objectId']." NOT deleted"; 
 
87
                // }
 
88
                // updateDataObjectList($_POST['quizNr'], $_POST['qVarNr'], $_POST['courseName'], $pdo);
 
89
                $errorMsg.="ERROR: Object ID ".$_POST['objectId']." NOT deleted - FUNCTION DISABLED"; 
 
90
        }
 
91
        
 
92
        //addDataObject
 
93
        if(isset($_POST['addDataObject'])){
 
94
                $insertString = "INSERT INTO QuizVariantObject(id, qVarNr, quizNr, quizCourseName, objectData) VALUES(:ID,:QVNR,:QNR,:CNAME,:OBJECTDATA);";
 
95
                $insertStmt = $pdo->prepare($insertString);
 
96
                $insertStmt->bindParam(':ID', $_POST['newObjectId']);
 
97
                $insertStmt->bindParam(':QNR', $_POST['quizNr']);
 
98
                $insertStmt->bindParam(':CNAME', $_POST['courseName']);
 
99
                $insertStmt->bindParam(':QVNR', $_POST['qVarNr']);
 
100
                $objectData=htmlsafe($_POST['objectData']);
 
101
                $insertStmt->bindParam(':OBJECTDATA', $objectData);
 
102
                if($insertStmt->execute()){
 
103
                        $userMsg.="Object ID ".$_POST['newObjectId']." successfully added"; 
 
104
                } else {
 
105
                        $errorMsg.="ERROR: Object ID ".$_POST['newObjectId']." NOT added"; 
 
106
                }
 
107
                updateDataObjectList($_POST['quizNr'], $_POST['qVarNr'], $_POST['courseName'], $pdo);
 
108
        }
 
109
        
 
110
        //Fetch all data objects in selected quiz variant
 
111
        $queryString = "SELECT * 
 
112
                                        FROM QuizVariantObject
 
113
                                        WHERE  QuizVariantObject.qVarNr=:QVNR 
 
114
                                                AND QuizVariantObject.quizNr=:QNR
 
115
                                                AND quizCourseName=:CNAME;";
 
116
        $stmt = $pdo->prepare($queryString);
 
117
        $stmt->bindParam(':QVNR', $_POST['qVarNr']);
 
118
        $stmt->bindParam(':QNR', $_POST['quizNr']);
 
119
        $stmt->bindParam(':CNAME', $_POST['courseName']);
 
120
        $stmt->execute();
 
121
        $quizVariantObjects=$stmt->fetchAll(PDO::FETCH_ASSOC);
 
122
        
 
123
        //Fetch data for the selected variant
 
124
        $queryString = "SELECT * 
 
125
                                        FROM QuizVariant
 
126
                                        WHERE quizNr=:QNR
 
127
                                                AND qVarNr=:QVNR
 
128
                                                AND quizCourseName=:CNAME;";
 
129
        $stmt = $pdo->prepare($queryString);
 
130
        $stmt->bindParam(':QNR', $_POST['quizNr']);
 
131
        $stmt->bindParam(':QVNR', $_POST['qVarNr']);
 
132
        $stmt->bindParam(':CNAME', $_POST['courseName']);
 
133
        $stmt->execute();
 
134
        $quizVariant=$stmt->fetch(PDO::FETCH_ASSOC);
 
135
        
 
136
        $content="quiz/listDataObjects.html.php";
 
137
} else if(isset($_POST['editSelectedQuiz']) || isset($_POST['addQuizSubmit'])){ //If user selected add or edit quiz
 
138
                
 
139
        if(isset($_POST['editSelectedQuiz'])){
 
140
                $queryString = "SELECT Quiz.nr, Quiz.courseName, Quiz.opening, Quiz.closing, Quiz.quizData, Quiz.autoCorrected, Quiz.allowMultipleReplies, Quiz.quizURI
 
141
                                                FROM Quiz 
 
142
                                                WHERE nr=:QNR AND courseName=:CNAME";
 
143
                $stmt = $pdo->prepare($queryString);
 
144
                $stmt->bindParam(':QNR', $_POST['quizNr']);
 
145
                $stmt->bindParam(':CNAME', $_POST['courseName']);
 
146
                $stmt->execute();
 
147
                $quiz=$stmt->fetch(PDO::FETCH_ASSOC);
 
148
        }
 
149
        $content="quiz/addEditQuiz.html.php";
 
150
                
 
151
} else if(isset($_POST['listVariantsForSelectedQuiz'])){
 
152
 
 
153
        //Add new variant of quiz
 
154
        if(isset($_POST['addVariantToQuizFormSubmit'])){
 
155
                $insertString = "INSERT INTO QuizVariant(qVarNr, quizNr, quizCourseName, correctAnswer) VALUES(:QVNR, :QNR,:CNAME,:CANSWER);";
 
156
                $insertStmt = $pdo->prepare($insertString);
 
157
                $insertStmt->bindParam(':QNR', $_POST['quizNr']);
 
158
                $insertStmt->bindParam(':CNAME', $_POST['courseName']);
 
159
                $insertStmt->bindParam(':QVNR', $_POST['newQVarNr']);
 
160
                $insertStmt->bindParam(':CANSWER', $_POST['correctAnswer']);
 
161
                if($insertStmt->execute()){
 
162
                        $userMsg.="Variant nr: ".$_POST['newQVarNr']." for quiz nr: ".$_POST['quizNr']." successfully added"; 
 
163
                        $_POST['qVarNr']=$_POST['newQVarNr']+1;
 
164
                } else {
 
165
                        $errorMsg.="ERROR: Variant nr: ".$_POST['qVarNr']." for quiz nr: ".$_POST['quizNr']." NOT added"; 
 
166
                }
 
167
        }
 
168
        
 
169
        //Apply changes to variant of quiz
 
170
        if(isset($_POST['editVariantOfQuizFormSubmit'])){
 
171
                $updateString = "UPDATE QuizVariant 
 
172
                                                 SET QuizVariant.qVarNr=:NEWQVNR, QuizVariant.correctAnswer=:CANSWER
 
173
                                                 WHERE QuizVariant.qVarNr=:QVNR
 
174
                                                        AND QuizVariant.quizNr=:QNR 
 
175
                                                        AND QuizVariant.quizCourseName=:CNAME;";
 
176
                $updateStmt = $pdo->prepare($updateString);
 
177
                $updateStmt->bindParam(':NEWQVNR', $_POST['newQVarNr']);
 
178
                $updateStmt->bindParam(':CANSWER', $_POST['correctAnswer']);
 
179
                $updateStmt->bindParam(':QNR', $_POST['quizNr']);
 
180
                $updateStmt->bindParam(':QVNR', $_POST['qVarNr']);
 
181
                $updateStmt->bindParam(':CNAME', $_POST['courseName']);
 
182
                if($updateStmt->execute()){
 
183
                        $userMsg.="Variant nr: ".$_POST['qVarNr']." for quiz nr: ".$_POST['quizNr']." successfully updated"; 
 
184
                        $_POST['qVarNr']=$_POST['newQVarNr'];
 
185
                } else {
 
186
                        $errorMsg.="ERROR: Variant nr: ".$_POST['qVarNr']." for quiz nr: ".$_POST['quizNr']." NOT updated"; 
 
187
                }
 
188
                $updateStmt->closeCursor();
 
189
        } 
 
190
        
 
191
        //deleteVariantOfQuizSubmit
 
192
        //Delete variant of quiz (and all quiz-assignments to students)
 
193
        if(isset($_POST['deleteVariantOfQuizSubmit'])){
 
194
                // $deleteQuery = "DELETE FROM QuizVariant 
 
195
                                // WHERE QuizVariant.qVarNr=:QVNR 
 
196
                                                        // AND QuizVariant.quizNr=:QNR 
 
197
                                                        // AND QuizVariant.quizCourseName=:CNAME";
 
198
                // $deleteStmt = $pdo->prepare($deleteQuery);
 
199
                // $deleteStmt->bindParam(':QNR', $_POST['quizNr']);
 
200
                // $deleteStmt->bindParam(':CNAME', $_POST['courseName']);
 
201
                // $deleteStmt->bindParam(':QVNR', $_POST['qVarNr']);
 
202
                // if($deleteStmt->execute()){
 
203
                        // $userMsg.="Variant nr: ".$_POST['qVarNr']." for quiz nr: ".$_POST['quizNr']." successfully deleted"; 
 
204
                // } else {
 
205
                        // $errorMsg.="ERROR: Variant nr: ".$_POST['qVarNr']." for quiz nr: ".$_POST['quizNr']." NOT deleted"; 
 
206
                // }
 
207
                 $errorMsg.="ERROR: Variant nr: ".$_POST['qVarNr']." for quiz nr: ".$_POST['quizNr']." NOT deleted - FUNCTION DISABLED"; 
 
208
        }
 
209
        
 
210
        //Fetch all variants of selected quiz
 
211
        $queryString = "SELECT QuizVariant.qVarNr, QuizVariant.quizNr, QuizVariant.quizCourseName, QuizVariant.correctAnswer, QuizVariant.quizObjectIDs, Quiz.quizURI 
 
212
                        FROM QuizVariant, Quiz
 
213
                                        WHERE Quiz.nr=QuizVariant.quizNr 
 
214
                                                AND QuizVariant.quizNr=:QNR
 
215
                                                AND quizCourseName=:CNAME;";
 
216
        $stmt = $pdo->prepare($queryString);
 
217
        $stmt->bindParam(':QNR', $_POST['quizNr']);
 
218
        $stmt->bindParam(':CNAME', $_POST['courseName']);
 
219
        $stmt->execute();
 
220
        $quizVariants=$stmt->fetchAll(PDO::FETCH_ASSOC);
 
221
        
 
222
        $content="quiz/editVariants.html.php";
 
223
 
 
224
} else { //Else display course selection
 
225
                
 
226
        //Delete quiz from course (and all variants of the quiz and all quiz-assignments to students)
 
227
        if(isset($_POST['deleteSelectedQuiz'])){
 
228
                // $deleteQuery = "DELETE FROM Quiz 
 
229
                                // WHERE Quiz.nr=:QNR 
 
230
                                                        // AND Quiz.courseName=:CNAME";
 
231
                // $deleteStmt = $pdo->prepare($deleteQuery);
 
232
                // $deleteStmt->bindParam(':QNR', $_POST['quizNr']);
 
233
                // $deleteStmt->bindParam(':CNAME', $_POST['courseName']);
 
234
                
 
235
                // if($deleteStmt->execute()){
 
236
                        // $userMsg.="Quiz nr: ".$_POST['quizNr']." successfully deleted from ".$_POST['courseName']; 
 
237
                // } else {
 
238
                        // $errorMsg.="ERROR: Could not delete Quiz nr: ".$_POST['quizNr']." from ".$_POST['courseName']; 
 
239
                // }
 
240
                $errorMsg.="ERROR: Could not delete Quiz nr: ".$_POST['quizNr']." from ".$_POST['courseName']." - FUNCTION DISABLED";
 
241
        }
 
242
        
 
243
        //Make submitted changes to quiz
 
244
        if(isset($_POST['submitChangesToQuizSubmit'])){
 
245
                $updateString = "UPDATE Quiz 
 
246
                                                 SET Quiz.nr=:NEWQNR, Quiz.opening=:OPEN, Quiz.closing=:CLOSE, Quiz.quizData=:QDATA, Quiz.autoCorrected=:AUTO, Quiz.allowMultipleReplies=:MULTIPLE, Quiz.quizURI=:QURI 
 
247
                                                 WHERE Quiz.nr=:QNR AND Quiz.courseName=:CNAME;";
 
248
                $updateStmt = $pdo->prepare($updateString);
 
249
                $updateStmt->bindParam(':OPEN', $_POST['quizOpeningDateTime']);
 
250
                $updateStmt->bindParam(':CLOSE', $_POST['quizClosingDateTime']);
 
251
                if($_POST['quizAutoCorrected']!="")
 
252
                        $autoCorrected=1;
 
253
                else
 
254
                        $autoCorrected=0;
 
255
                $updateStmt->bindParam(':AUTO', $autoCorrected);
 
256
                if($_POST['allowMultipleReplies']!="")
 
257
                        $allowMultipleReplies=1;
 
258
                else
 
259
                        $allowMultipleReplies=0;
 
260
                $updateStmt->bindParam(':MULTIPLE', $allowMultipleReplies);
 
261
                $quizData=htmlsafe($_POST['quizData']);
 
262
                $updateStmt->bindParam(':QDATA', $quizData);
 
263
                $updateStmt->bindParam(':QNR', $_POST['quizNr']);
 
264
                if($_POST['allowMultipleReplies']!="")
 
265
                        $allowMultipleReplies=1;
 
266
                else
 
267
                        $allowMultipleReplies=0;
 
268
                $updateStmt->bindParam(':MULTIPLE', $allowMultipleReplies);
 
269
                $updateStmt->bindParam(':QURI', $_POST['quizURI']);
 
270
                $updateStmt->bindParam(':NEWQNR', $_POST['newQuizNr']);
 
271
                $updateStmt->bindParam(':CNAME', $_POST['courseName']);
 
272
                if($updateStmt->execute()){
 
273
                        $userMsg.="Quiz nr: ".$_POST['quizNr']." for ".$_POST['courseName']." successfully updated"; 
 
274
                } else {
 
275
                        $errorMsg.="ERROR: Quiz nr: ".$_POST['quizNr']." for ".$_POST['courseName']." NOT updated"; 
 
276
                }
 
277
        } 
 
278
        
 
279
        //Add new quiz to course
 
280
        if(isset($_POST['addQuizToCourseSubmit'])){
 
281
                $insertString = "INSERT INTO Quiz(nr, courseName, opening, closing, autoCorrected, allowMultipleReplies, quizURI, quizData)
 
282
                                                 VALUES(:QNR,:CNAME,:OPEN,:CLOSE,:AUTO,:MULTIPLE,:QURI,:QDATA);";
 
283
                $insertStmt = $pdo->prepare($insertString);
 
284
                $insertStmt->bindParam(':QNR', $_POST['newQuizNr']);
 
285
                $insertStmt->bindParam(':CNAME', $_POST['courseName']);
 
286
                $insertStmt->bindParam(':OPEN', $_POST['quizOpeningDateTime']);
 
287
                $insertStmt->bindParam(':CLOSE', $_POST['quizClosingDateTime']);
 
288
                if($_POST['quizAutoCorrected']!="")
 
289
                        $autoCorrected=1;
 
290
                else
 
291
                        $autoCorrected=0;
 
292
                $insertStmt->bindParam(':AUTO', $autoCorrected);
 
293
                if($_POST['allowMultipleReplies']!="")
 
294
                        $allowMultipleReplies=1;
 
295
                else
 
296
                        $allowMultipleReplies=0;
 
297
                $insertStmt->bindParam(':MULTIPLE', $allowMultipleReplies);
 
298
                $insertStmt->bindParam(':QURI', $_POST['quizURI']);
 
299
                $quizData=htmlsafe($_POST['quizData']);
 
300
                $insertStmt->bindParam(':QDATA', $quizData);
 
301
                if($insertStmt->execute()){
 
302
                        $userMsg.="Quiz for ".$_POST['courseName']." successfully added"; 
 
303
                } else {
 
304
                        $errorMsg.="ERROR: Quiz for ".$_POST['courseName']." NOT added"; 
 
305
                }
 
306
        }
 
307
        
 
308
        //Fetch all quizzes for selected course
 
309
        if(isset($_POST['listQuizzesSubmit'])){
 
310
                $queryString = "SELECT Quiz.nr, Quiz.courseName, Quiz.opening, Quiz.closing, Quiz.autoCorrected, Quiz.allowMultipleReplies, Quiz.quizURI
 
311
                                FROM Quiz
 
312
                                                WHERE Quiz.courseName=:CNAME;";
 
313
                $stmt = $pdo->prepare($queryString);
 
314
                $stmt->bindParam(':CNAME', $_POST['courseName']);
 
315
                $stmt->execute();
 
316
                $quizList=$stmt->fetchAll(PDO::FETCH_ASSOC);
 
317
        }
 
318
        
 
319
        //Fetch all courses from Course-table to populate dropdown-list
 
320
        $queryString = "SELECT * FROM Course";
 
321
        $stmt = $pdo->prepare($queryString);
 
322
        $stmt->execute();
 
323
        $courseList=$stmt->fetchAll(PDO::FETCH_ASSOC);
 
324
        
 
325
        $content="quiz/listQuizzes.html.php";
 
326
}
 
327
?>
 
 
b'\\ No newline at end of file'