12
12
$this->load->database();
15
/* Get all of the courses */
15
16
function getCourses() {
17
$this->db->order_by("name", "asc");
16
18
$query = $this->db->get('Courses');
17
19
return $query->result();
20
function addCourse($cid, $name){
22
/* Get all the public courses */
23
function getPublicCourses() {
24
$this->db->from("Courses");
25
$this->db->order_by("name", "asc");
26
$this->db->where("isHidden","0");
27
$this->db->where("isPublic","1");
28
$query = $this->db->get();
29
return $query->result();
32
/* Get all the private courses for a student - If they are published and private*/
33
function getPrivateCourses($username) {
34
$this->db->from("Courses");
35
$this->db->join("StudentCourseRegistrations", "Courses.courseID = StudentCourseRegistrations.courseID");
36
$this->db->order_by("name", "asc");
37
$this->db->where("userName", $username);
38
$this->db->where("isPublic", "0");
39
$this->db->where("isHidden","0");
40
$query = $this->db->get();
41
return $query->result();
44
/* Get all the courses for a student, both private from getPrivateCourses(), and public from getPublicCourses() */
45
function getStudentCourses($username) {
46
$private = $this->getPrivateCourses($username);
47
$public = $this->getPublicCourses();
48
return array_merge($private, $public);
51
function setCourseHidden($courseID) {
52
$this->db->where("courseID", $courseID);
53
$this->db->update("Courses", array("isHidden" => 1));
56
function unsetCourseHidden($courseID){
57
$this->db->where("courseID", $courseID);
58
$this->db->update("Courses", array("isHidden" => 0));
61
function addCourse($cid, $name, $courseData){
22
63
'courseID' => $cid ,
65
'courseData' => $courseData
26
68
$this->db->insert('Courses', $data);
31
function getExamples($cid) {
32
$query = $this->db->get_where('Examples', array("courseID" => $cid));
33
return $query->result();
36
function addExample($cid, $example, $description){
73
function editCourse($cid, $name, $courseData) {
76
'courseData' => $courseData
79
$this->db->where('courseID', $cid);
80
$this->db->update('Courses', $data);
85
$courses = $this->db->get("Courses");
86
foreach ($courses->result() as $course) {
87
$menu[$course->name] = array();
88
$menu[$course->name]['CID'] = $course->courseID;
89
$categories = $this->db->get_where("Categories", array("courseID" => $course->courseID));
91
foreach($categories->result() as $category){
92
$menu[$course->name][$category->categoryName] = array();
94
$subcategories = $this->db->get_where("SubCategories", array("courseID" => $course->courseID, "categoryName" => $category->categoryName));
96
foreach($subcategories->result() as $subcategory){
97
$menu[$course->name][$category->categoryName][$subcategory->subCategoryName] = array();
107
function getCategories($cid) {
108
$this->db->order_by("orderNr", "asc");
109
$query = $this->db->get_where('Categories', array("courseID" => $cid));
110
return $query->result();
113
function addCategory($cid, $categoryName){
114
$this->db->select_max("orderNr");
115
$query = $this->db->get_where('Categories', array("courseID" => $cid));
117
$result = $query->result();
120
'categoryName' => $categoryName,
121
'orderNr' => $result[0]->orderNr+1
124
$this->db->insert('Categories', $data);
125
mkdir("../courses/".$cid."/".$categoryName);
129
function getSubCategories($cid, $categoryName) {
130
$query = $this->db->get_where('SubCategories', array("courseID" => $cid, "categoryName" => $categoryName));
131
return $query->result();
134
function addSubCategory($cid, $categoryName, $subCategoryName){
135
$this->db->select_max("orderNr");
136
$query = $this->db->get_where('SubCategories', array("courseID" => $cid, "categoryName" => $categoryName));
138
$result = $query->result();
141
'subCategoryName' => $subCategoryName,
142
'categoryName' => $categoryName,
143
'orderNr' => $result[0]->orderNr+1
146
$this->db->insert('SubCategories', $data);
147
mkdir("../courses/".$cid."/".$categoryName."/".$subCategoryName);
151
function getExamples($cid, $categoryName, $subCategoryName) {
152
$query = $this->db->get_where('Examples', array("courseID" => $cid, "categoryName" => $categoryName, "subCategoryName" => $subCategoryName));
153
return $query->result();
156
function getQuizzes($cid, $categoryName, $subCategoryName) {
157
$query = $this->db->get_where('Quizzes', array("courseID" => $cid, "categoryName" => $categoryName, "subCategoryName" => $subCategoryName));
158
return $query->result();
161
function addExample($cid, $categoryName, $subCategoryName, $example, $description){
162
$this->db->select_max("orderNr");
163
$query = $this->db->get_where('Examples', array("courseID" => $cid, "categoryName" => $categoryName, "subCategoryName" => $subCategoryName));
164
$result = $query->result();
38
166
'courseID' => $cid ,
39
167
'exampleName' => $example,
40
'description' => $description
168
'description' => $description,
169
'categoryName' => $categoryName,
170
'subCategoryName' => $subCategoryName,
171
'orderNr' => $result[0]->orderNr+1
43
174
$this->db->insert('Examples', $data);
44
mkdir("../courses/".$cid."/".$example);
48
function getPages($cid, $example) {
49
$query = $this->db->get_where('Pages', array("courseID" => $cid, "exampleName" => $example));
50
return $query->result();
53
function addPage($cid, $example, $page){
56
'exampleName' => $example,
60
$this->db->insert('Pages', $data);
61
mkdir("../courses/".$cid."/".$example."/".$page);
64
'fileName' => $cid."/".$example."/".$page."/documentation",
65
'codeLanguage' => $file->lang,
66
'fileType' => $file->type,
177
'fileName' => $cid."/".$categoryName."/".$subCategoryName."/".$example."/documentation",
178
'codeLanguage' => "text",
179
'fileType' => "text",
70
183
$this->db->insert('Files', $data);
73
'fileName' => $cid."/".$example."/".$page."/documentation" ,
186
'fileName' => $cid."/".$categoryName."/".$subCategoryName."/".$example."/documentation",
187
'categoryName' => $categoryName,
188
'subCategoryName' => $subCategoryName,
75
189
'exampleName' => $example,
79
$this->db->insert('PageFiles', $data);
195
$this->db->insert('Containers', $data);
196
mkdir("../courses/".$cid."/".$categoryName."/".$subCategoryName."/".$example);
83
function updatePage($cid, $example, $page, $documentation, $files){
200
function updateExample($cid, $categoryName, $subCategoryName, $example, $documentation, $files){
85
202
$filearr = json_decode($files);
87
204
foreach ($filearr as $file) {
89
$handle = @fopen("../courses/".$cid."/".$example."/".$page."/".$file->filename, "r");
206
$handle = @fopen("../courses/".$cid."/".$categoryName."/".$subCategoryName."/".$example."/".$file->filename, "r");
92
209
while (($buffer = fgets($handle, 4096)) !== false) {
113
230
$this->db->insert('Files', $data);
232
$this->db->select_max("orderNr");
233
$query = $this->db->get_where('Containers', array("courseID" => $cid, "categoryName" => $categoryName, "subCategoryName" => $subCategoryName, "exampleName" => $example, "columnNr" => $file->columnNr));
234
$result = $query->result();
116
'fileName' => $file->filename ,
237
'fileName' => $cid."/".$categoryName."/".$subCategoryName."/".$example."/".$file->filename ,
238
'categoryName' => $categoryName,
239
'subCategoryName' => $subCategoryName,
118
240
'exampleName' => $example,
242
'columnNr' => $file->columnNr,
243
'orderNr' => $result[0]->orderNr+1
122
$this->db->insert('PageFiles', $data);
246
$this->db->insert('Containers', $data);
126
250
'dataBlob' => $documentation
129
$this->db->where("fileName",$cid."/".$example."/".$page."/"."documentation" );
253
$this->db->where("fileName",$cid."/".$categoryName."/".$subCategoryName."/".$example."/documentation");
130
254
$this->db->update('Files', $data);
135
function uploadFile($files, $cid, $example, $page){
136
if(move_uploaded_file($files['tmp_name'], "../courses/".$cid."/".$example."/".$page."/".$files['name'])){
259
function uploadFile($files, $cid, $categoryName, $subCategoryName, $example){
260
if(move_uploaded_file($files['tmp_name'], "../courses/".$cid."/".$categoryName."/".$subCategoryName."/".$example."/".$files['name'])){
137
261
echo json_encode(array('status'=>'File was uploaded successfuly!'));