/lenasys/trunk

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

« back to all changes in this revision

Viewing changes to codeigniter/application/models/admin/admin_model.php

  • Committer: Gustav Hatvigsson
  • Date: 2013-05-30 12:08:07 UTC
  • mfrom: (129 lenasys_b)
  • mto: This revision was merged to the branch mainline in revision 131.
  • Revision ID: gustav.hartvigsson@gmail.com-20130530120807-q2mad1xrq003ss2n
mergedĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
                $this->load->database();
13
13
        }
14
14
 
 
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();
18
20
        }
19
 
 
20
 
        function addCourse($cid, $name){
 
21
        
 
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();
 
30
        }
 
31
        
 
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();
 
42
        }
 
43
        
 
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);
 
49
        }
 
50
 
 
51
        function setCourseHidden($courseID) {
 
52
                $this->db->where("courseID", $courseID);
 
53
                $this->db->update("Courses", array("isHidden" => 1));
 
54
        }
 
55
 
 
56
        function unsetCourseHidden($courseID){
 
57
                $this->db->where("courseID", $courseID);
 
58
                $this->db->update("Courses", array("isHidden" => 0));
 
59
        }
 
60
 
 
61
        function addCourse($cid, $name, $courseData){
21
62
                $data = array(
22
63
                        'courseID' => $cid ,
23
 
                        'name' => $name
 
64
                        'name' => $name,
 
65
                        'courseData' => $courseData
24
66
                        );
25
67
 
26
68
                $this->db->insert('Courses', $data); 
28
70
 
29
71
        }
30
72
 
31
 
        function getExamples($cid) {
32
 
                $query = $this->db->get_where('Examples', array("courseID" => $cid));
33
 
                return $query->result();
34
 
        }
35
 
 
36
 
        function addExample($cid, $example, $description){
 
73
        function editCourse($cid, $name, $courseData) {
 
74
                $data = array(
 
75
                        'name' => $name,
 
76
                        'courseData' => $courseData
 
77
                );
 
78
 
 
79
                $this->db->where('courseID', $cid);
 
80
                $this->db->update('Courses', $data);
 
81
        }
 
82
 
 
83
        function getMenu(){
 
84
                $menu = array();
 
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));
 
90
 
 
91
                        foreach($categories->result() as $category){
 
92
                                $menu[$course->name][$category->categoryName] = array();
 
93
 
 
94
                                $subcategories = $this->db->get_where("SubCategories", array("courseID" => $course->courseID, "categoryName" => $category->categoryName));
 
95
 
 
96
                                foreach($subcategories->result() as $subcategory){
 
97
                                        $menu[$course->name][$category->categoryName][$subcategory->subCategoryName] = array();
 
98
 
 
99
                                }
 
100
                        }
 
101
                }
 
102
                
 
103
                return $menu;
 
104
 
 
105
        }
 
106
 
 
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();
 
111
        }
 
112
 
 
113
        function addCategory($cid, $categoryName){
 
114
                $this->db->select_max("orderNr");
 
115
                $query = $this->db->get_where('Categories', array("courseID" => $cid));
 
116
 
 
117
                $result = $query->result();
 
118
                $data = array(
 
119
                        'courseID' => $cid ,
 
120
                        'categoryName' => $categoryName,
 
121
                        'orderNr' => $result[0]->orderNr+1
 
122
                        );
 
123
 
 
124
                $this->db->insert('Categories', $data); 
 
125
                mkdir("../courses/".$cid."/".$categoryName);
 
126
 
 
127
        }
 
128
 
 
129
        function getSubCategories($cid, $categoryName) {
 
130
                $query = $this->db->get_where('SubCategories', array("courseID" => $cid, "categoryName" => $categoryName));
 
131
                return $query->result();
 
132
        }
 
133
 
 
134
        function addSubCategory($cid, $categoryName, $subCategoryName){
 
135
                $this->db->select_max("orderNr");
 
136
                $query = $this->db->get_where('SubCategories', array("courseID" => $cid, "categoryName" => $categoryName));
 
137
 
 
138
                $result = $query->result();
 
139
                $data = array(
 
140
                        'courseID' => $cid ,
 
141
                        'subCategoryName' => $subCategoryName,
 
142
                        'categoryName' => $categoryName,
 
143
                        'orderNr' => $result[0]->orderNr+1
 
144
                        );
 
145
 
 
146
                $this->db->insert('SubCategories', $data); 
 
147
                mkdir("../courses/".$cid."/".$categoryName."/".$subCategoryName);
 
148
 
 
149
        }
 
150
 
 
151
        function getExamples($cid, $categoryName, $subCategoryName) {
 
152
                $query = $this->db->get_where('Examples', array("courseID" => $cid, "categoryName" => $categoryName, "subCategoryName" => $subCategoryName));
 
153
                return $query->result();
 
154
        }
 
155
 
 
156
        function getQuizzes($cid, $categoryName, $subCategoryName) {
 
157
                $query = $this->db->get_where('Quizzes', array("courseID" => $cid, "categoryName" => $categoryName, "subCategoryName" => $subCategoryName));
 
158
                return $query->result();
 
159
        }
 
160
 
 
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();
37
165
                $data = array(
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
41
172
                        );
42
173
 
43
174
                $this->db->insert('Examples', $data); 
44
 
                mkdir("../courses/".$cid."/".$example);
45
 
 
46
 
        }
47
 
 
48
 
        function getPages($cid, $example) {
49
 
                $query = $this->db->get_where('Pages', array("courseID" => $cid, "exampleName" => $example));
50
 
                return $query->result();
51
 
        }
52
 
 
53
 
        function addPage($cid, $example, $page){
54
 
                $data = array(
55
 
                        'courseID' => $cid ,
56
 
                        'exampleName' => $example,
57
 
                        'pageName' => $page
58
 
                        );
59
 
 
60
 
                $this->db->insert('Pages', $data); 
61
 
                mkdir("../courses/".$cid."/".$example."/".$page);
62
 
 
63
 
                $data = array(
64
 
                        'fileName' => $cid."/".$example."/".$page."/documentation",
65
 
                        'codeLanguage' => $file->lang,
66
 
                        'fileType' => $file->type,
67
 
                        'dataBlob' => $output
 
175
 
 
176
                $data = array(
 
177
                        'fileName' => $cid."/".$categoryName."/".$subCategoryName."/".$example."/documentation",
 
178
                        'codeLanguage' => "text",
 
179
                        'fileType' => "text",
 
180
                        'dataBlob' => ""
68
181
                        );
69
182
 
70
183
                $this->db->insert('Files', $data); 
71
184
 
72
185
                $data = array(
73
 
                        'fileName' =>  $cid."/".$example."/".$page."/documentation"  ,
74
 
                        'pageName' => $page,
 
186
                        'fileName' => $cid."/".$categoryName."/".$subCategoryName."/".$example."/documentation",
 
187
                        'categoryName' => $categoryName,
 
188
                        'subCategoryName' => $subCategoryName,
75
189
                        'exampleName' => $example,
76
 
                        'courseID' => $cid
 
190
                        'courseID' => $cid,
 
191
                        'columnNr' => 1,
 
192
                        'orderNr' => 1
77
193
                        );
78
194
 
79
 
                $this->db->insert('PageFiles', $data); 
 
195
                $this->db->insert('Containers', $data); 
 
196
                mkdir("../courses/".$cid."/".$categoryName."/".$subCategoryName."/".$example);
80
197
 
81
198
        }
82
199
 
83
 
        function updatePage($cid, $example, $page, $documentation, $files){
 
200
        function updateExample($cid, $categoryName, $subCategoryName, $example,  $documentation, $files){
84
201
 
85
202
                $filearr = json_decode($files);
86
203
 
87
204
                foreach ($filearr as $file) {
88
205
                        $output = "";
89
 
                        $handle = @fopen("../courses/".$cid."/".$example."/".$page."/".$file->filename, "r");
 
206
                        $handle = @fopen("../courses/".$cid."/".$categoryName."/".$subCategoryName."/".$example."/".$file->filename, "r");
90
207
                        if ($handle) {
91
208
 
92
209
                                while (($buffer = fgets($handle, 4096)) !== false) {
104
221
                        }
105
222
                        
106
223
                        $data = array(
107
 
                                'fileName' => $file->filename ,
 
224
                                'fileName' => $cid."/".$categoryName."/".$subCategoryName."/".$example."/".$file->filename ,
108
225
                                'codeLanguage' => $file->lang,
109
226
                                'fileType' => $file->type,
110
227
                                'dataBlob' => $output
112
229
 
113
230
                        $this->db->insert('Files', $data); 
114
231
 
 
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();
 
235
 
115
236
                        $data = array(
116
 
                                'fileName' =>  $file->filename  ,
117
 
                                'pageName' => $page,
 
237
                                'fileName' => $cid."/".$categoryName."/".$subCategoryName."/".$example."/".$file->filename ,
 
238
                                'categoryName' => $categoryName,
 
239
                                'subCategoryName' => $subCategoryName,
118
240
                                'exampleName' => $example,
119
 
                                'courseID' => $cid
 
241
                                'courseID' => $cid,
 
242
                                'columnNr' => $file->columnNr,
 
243
                                'orderNr' => $result[0]->orderNr+1
120
244
                                );
121
245
 
122
 
                        $this->db->insert('PageFiles', $data); 
 
246
                        $this->db->insert('Containers', $data); 
123
247
                }
124
248
 
125
249
                $data = array(
126
250
                        'dataBlob' => $documentation
127
251
                        );
128
252
 
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); 
131
255
                
132
256
 
133
257
        }
134
258
 
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!'));
138
262
                }       
139
263
        }
 
264
 
140
265
}