-
Notifications
You must be signed in to change notification settings - Fork 1
/
edit-quiz.php
124 lines (107 loc) · 4.85 KB
/
edit-quiz.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
/*
* The loader for the edit quiz page & list
*/
// include php files here
require_once("includes/config.php");
// end of php file inclusion
/*
* Store quizid from edit-quiz-list in session variable to be used in edit-quiz-view.php
* as it passes as empty after the first time it is posted from edit-quiz-list and cant be accessed.
*/
$confirmActive = "";
$enableSubMenuLinks = true; //default the links work
$quizIDGet = filter_input(INPUT_GET, "quiz");
if (!is_null($quizIDGet)){
$quizId = quizLogic::returnRealQuizID($quizIDGet);
} else {
$quizId = NULL;
}
$quizCreated = filter_input(INPUT_GET, "create");
if ($quizCreated == "yes"){
$createQuizConfirmation = "Quiz Successfully created!";
} else {
$createQuizConfirmation = "";
}
$reason = filter_input(INPUT_GET, "message");
if (isset($reason)){
switch($reason){
case 'no-quiz-selected':
$message = "Please select a quiz to contine.";
break;
case 'no-edit-permission':
$message = "You do not have edit permissions on that quiz.";
break;
default:
$message = 'Unknown Error';
}
} else {
$message = "";
}
/* User can only edit quiz information if IS_ENABLED is set to inactive so as not to disrupt users.
* Check if IS_ENABLED is already set for validation in editing details, questions, editors, takers.
*/
$isEnabledState = editQuizLogic::isQuizEnabled($quizId);
if (is_null($isEnabledState)){
} else {
$_SESSION["IS_QUIZ_ENABLED"] = $isEnabledState; //set the state (true or false)
$enableSubMenuLinks = $isEnabledState;
}
if($_SERVER['REQUEST_METHOD'] === "POST"){
$quizIDPost = filter_input(INPUT_POST, "quizid");
$quizId = editQuizInitialLoadLogic::getQuizIdFromUrlElseReturnToEditQuiz($quizIDPost);
$sharedQuizId = quizLogic::returnSharedQuizID($quizId);
$quizUrl = editQuizInitialLoadLogic::returnQuizUrl($sharedQuizId);
$username = $userLogic->getUsername();
editQuizInitialLoadLogic::canUserEditQuizElseReturnToEditQuiz($sharedQuizId, $username);
$selectQuizButton = filter_input(INPUT_POST, "selectQuiz");
$confirmEnabledButton = filter_input(INPUT_POST, 'confirmEnabled');
$confirmDisabledButton = filter_input(INPUT_POST, 'confirmDisabled');
if (isset($selectQuizButton)) {
//Page is being loaded from edit-quiz-list with quizid selected
header('Location: ' . CONFIG_ROOT_URL . '/edit-quiz.php'.$quizUrl);
exit;
//If ENABLE button is pushed, update row in database
}else if (isset($confirmEnabledButton)) {
//now quiz has to have at least 2 questions & 1 answer
//has to have a question ans teh start and at the end of eah of teh branches
//has to have no answers adjancent or questions adjancent
$problemQuestionAnswersArray = editQuestionLogic::returnProblemQuestionAnswersIntegrityCheck($quizId);
//if returned an array with no entries
if (empty($problemQuestionAnswersArray)) {
//TO DO if changes
if(isset($_SESSION['CURRENT_EDIT_QUIZ_EDITED'])){ //if the session was set, ergo, was edited, otherwise is NULL
$_SESSION['CURRENT_EDIT_QUIZ_EDITED'] = NULL; //edited changes are now commmited
}
$confirmActive = editQuizLogic::setQuizToEnabled($quizId);
//Set flag variable that is checked before commiting edits in other pages
$_SESSION["IS_QUIZ_ENABLED"] = true;
$enableSubMenuLinks = true;
editQuizCloneLogic::setQuizToConsistentState($quizId);
} else {
$invalidQuestionAnswersDisplayArray = editQuizViewLogic::formatProblemQuizArray($problemQuestionAnswersArray, $quizUrl);
}
//If DISABLE button is pressed, update row in database
}else if(isset($confirmDisabledButton)){
$confirmActive = editQuizLogic::setQuizToDisabled($quizId);
//Set flag variable that is checked before commiting edits in other pages
$_SESSION["IS_QUIZ_ENABLED"] = false;
$enableSubMenuLinks = false; //no menu links
}
include('edit-quiz-view.php');
//If coming from home page, display quiz list for user to select
}else if(is_null($quizIDGet)){
$username = $userLogic->getUsername();
//Retrieve the most current versions of quizzes for which the user is an editor
$nameArray = editQuizLogic::returnEditorQuizList($username);
include('edit-quiz-list-view.php');
// GET request
}else{
$quizId = editQuizInitialLoadLogic::getQuizIdFromUrlElseReturnToEditQuiz();
$sharedQuizId = quizLogic::returnSharedQuizID($quizId);
$quizUrl = editQuizInitialLoadLogic::returnQuizUrl($sharedQuizId);
$username = $userLogic->getUsername();
editQuizInitialLoadLogic::canUserEditQuizElseReturnToEditQuiz($sharedQuizId, $username);
//get request and the quiz was specified
include('edit-quiz-view.php');
}