Hệ thống quản lý học tập trong Php

1 <?php
2 defined(
'BASEPATH') OR exit('No direct script access allowed');
3
4 class
Home extends CI_Controller {
5
6     
public function __construct()
7     {
8         parent::__construct();
9         
// Your own constructor code
10         $
this->load->database();
11         $
this->load->library('session');
12         
// $this->load->library('stripe');
13         
/*cache control*/
14         $
this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
15         $
this->output->set_header('Pragma: no-cache');
16         
if (!$this->session->userdata('cart_items')) {
17             $
this->session->set_userdata('cart_items', array());
18         }
19     }
20
21     
public function index() {
22         $
this->home();
23     }
24
25     
public function home() {
26         $page_data[
'page_name'] = "home";
27         $page_data[
'page_title'] = get_phrase('home');
28         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
29     }
30
31     
public function shopping_cart() {
32         
if (!$this->session->userdata('cart_items')) {
33             $
this->session->set_userdata('cart_items', array());
34         }
35         $page_data[
'page_name'] = "shopping_cart";
36         $page_data[
'page_title'] = get_phrase('shopping_cart');
37         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
38     }
39
40     
public function courses() {
41         
if (!$this->session->userdata('layout')) {
42             $
this->session->set_userdata('layout', 'list');
43         }
44         $layout = $
this->session->userdata('layout');
45         $selected_category_id =
"all";
46         $selected_price =
"all";
47         $selected_level =
"all";
48         $selected_language =
"all";
49         $selected_rating =
"all";
50         
// Get the category ids
51         
if (isset($_GET['category']) && !empty($_GET['category'] && $_GET['category'] != "all")) {
52             $selected_category_id = $
this->crud_model->get_category_id($_GET['category']);
53         }
54
55         
// Get the selected price
56         
if (isset($_GET['price']) && !empty($_GET['price'])) {
57             $selected_price = $_GET[
'price'];
58         }
59
60         
// Get the selected level
61         
if (isset($_GET['level']) && !empty($_GET['level'])) {
62             $selected_level = $_GET[
'level'];
63         }
64
65         
// Get the selected language
66         
if (isset($_GET['language']) && !empty($_GET['language'])) {
67             $selected_language = $_GET[
'language'];
68         }
69
70         
// Get the selected rating
71         
if (isset($_GET['rating']) && !empty($_GET['rating'])) {
72             $selected_rating = $_GET[
'rating'];
73         }
74
75
76         
if ($selected_category_id == "all" && $selected_price == "all" && $selected_level == 'all' && $selected_language == 'all' && $selected_rating == 'all') {
77             $
this->db->where('status', 'active');
78             $total_rows = $
this->db->get('course')->num_rows();
79             $config = array();
80             $config = pagintaion($total_rows,
6);
81             $config[
'base_url'] = site_url('home/courses/');
82             $
this->pagination->initialize($config);
83             $
this->db->where('status', 'active');
84             $page_data[
'courses'] = $this->db->get('course', $config['per_page'], $this->uri->segment(3))->result_array();
85         }
else {
86             $courses = $
this->crud_model->filter_course($selected_category_id, $selected_price, $selected_level, $selected_language, $selected_rating);
87             $page_data[
'courses'] = $courses;
88         }
89
90         $page_data[
'page_name'] = "courses_page";
91         $page_data[
'page_title'] = get_phrase('courses');
92         $page_data[
'layout'] = $layout;
93         $page_data[
'selected_category_id'] = $selected_category_id;
94         $page_data[
'selected_price'] = $selected_price;
95         $page_data[
'selected_level'] = $selected_level;
96         $page_data[
'selected_language'] = $selected_language;
97         $page_data[
'selected_rating'] = $selected_rating;
98         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
99     }
100
101     
public function set_layout_to_session() {
102         $layout = $
this->input->post('layout');
103         $
this->session->set_userdata('layout', $layout);
104     }
105
106     
public function course($slug = "", $course_id = "") {
107         $
this->access_denied_courses($course_id);
108         $page_data[
'course_id'] = $course_id;
109         $page_data[
'page_name'] = "course_page";
110         $page_data[
'page_title'] = get_phrase('course');
111         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
112     }
113
114     
public function instructor_page($instructor_id = "") {
115         $page_data[
'page_name'] = "instructor_page";
116         $page_data[
'page_title'] = get_phrase('instructor_page');
117         $page_data[
'instructor_id'] = $instructor_id;
118         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
119     }
120
121     
public function my_courses() {
122         
if ($this->session->userdata('user_login') != true) {
123             redirect(site_url(
'home'), 'refresh');
124         }
125         $page_data[
'page_name'] = "my_courses";
126         $page_data[
'page_title'] = get_phrase("my_courses");
127         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
128     }
129
130     
public function my_messages($param1 = "", $param2 = "") {
131         
if ($this->session->userdata('user_login') != true) {
132             redirect(site_url(
'home'), 'refresh');
133         }
134         
if ($param1 == 'read_message') {
135             $page_data[
'message_thread_code'] = $param2;
136         }
137         elseif ($param1 ==
'send_new') {
138             $message_thread_code = $
this->crud_model->send_new_private_message();
139             $
this->session->set_flashdata('flash_message', get_phrase('message_sent!'));
140             redirect(site_url(
'home/my_messages/read_message/' . $message_thread_code), 'refresh');
141         }
142         elseif ($param1 ==
'send_reply') {
143             $
this->crud_model->send_reply_message($param2); //$param2 = message_thread_code
144             $
this->session->set_flashdata('flash_message', get_phrase('message_sent!'));
145             redirect(site_url(
'home/my_messages/read_message/' . $param2), 'refresh');
146         }
147         $page_data[
'page_name'] = "my_messages";
148         $page_data[
'page_title'] = get_phrase('my_messages');
149         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
150     }
151
152     
public function my_notifications() {
153         $page_data[
'page_name'] = "my_notifications";
154         $page_data[
'page_title'] = get_phrase('my_notifications');
155         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
156     }
157
158     
public function my_wishlist() {
159         
if (!$this->session->userdata('cart_items')) {
160             $
this->session->set_userdata('cart_items', array());
161         }
162         $my_courses = $
this->crud_model->get_courses_by_wishlists();
163         $page_data[
'my_courses'] = $my_courses;
164         $page_data[
'page_name'] = "my_wishlist";
165         $page_data[
'page_title'] = get_phrase('my_wishlist');
166         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
167     }
168
169     
public function purchase_history() {
170         
if ($this->session->userdata('user_login') != true) {
171             redirect(site_url(
'home'), 'refresh');
172         }
173
174         $total_rows = $
this->crud_model->purchase_history($this->session->userdata('user_id'))->num_rows();
175         $config = array();
176         $config = pagintaion($total_rows,
3);
177         $config[
'base_url'] = site_url('home/purchase_history');
178         $
this->pagination->initialize($config);
179         $page_data[
'per_page'] = $config['per_page'];
180         $page_data[
'page_name'] = "purchase_history";
181         $page_data[
'page_title'] = get_phrase('purchase_history');
182         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
183     }
184
185     
public function profile($param1 = "") {
186         
if ($this->session->userdata('user_login') != true) {
187             redirect(site_url(
'home'), 'refresh');
188         }
189
190         
if ($param1 == 'user_profile') {
191             $page_data[
'page_name'] = "user_profile";
192             $page_data[
'page_title'] = get_phrase('user_profile');
193         }elseif ($param1 ==
'user_credentials') {
194             $page_data[
'page_name'] = "user_credentials";
195             $page_data[
'page_title'] = get_phrase('credentials');
196         }elseif ($param1 ==
'user_photo') {
197             $page_data[
'page_name'] = "update_user_photo";
198             $page_data[
'page_title'] = get_phrase('update_user_photo');
199         }
200         $page_data[
'user_details'] = $this->user_model->get_user($this->session->userdata('user_id'));
201         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
202     }
203
204     
public function update_profile($param1 = "") {
205         
if ($param1 == 'update_basics') {
206             $
this->user_model->edit_user($this->session->userdata('user_id'));
207         }elseif ($param1 ==
"update_credentials") {
208             $
this->user_model->update_account_settings($this->session->userdata('user_id'));
209         }elseif ($param1 ==
"update_photo") {
210             $
this->user_model->upload_user_image($this->session->userdata('user_id'));
211             $
this->session->set_flashdata('flash_message', get_phrase('updated_successfully'));
212         }
213         redirect(site_url(
'home/profile/user_profile'), 'refresh');
214     }
215
216     
public function handleWishList() {
217         
if ($this->session->userdata('user_login') != 1) {
218             echo
false;
219         }
else {
220             
if (isset($_POST['course_id'])) {
221                 $course_id = $
this->input->post('course_id');
222                 $
this->crud_model->handleWishList($course_id);
223             }
224             $
this->load->view('frontend/'.get_frontend_settings('theme').'/wishlist_items');
225         }
226     }
227     
public function handleCartItems() {
228         
if (!$this->session->userdata('cart_items')) {
229             $
this->session->set_userdata('cart_items', array());
230         }
231
232         $course_id = $
this->input->post('course_id');
233         $previous_cart_items = $
this->session->userdata('cart_items');
234         
if (in_array($course_id, $previous_cart_items)) {
235             $key = array_search($course_id, $previous_cart_items);
236             unset($previous_cart_items[$key]);
237         }
else {
238             array_push($previous_cart_items, $course_id);
239         }
240
241         $
this->session->set_userdata('cart_items', $previous_cart_items);
242         $
this->load->view('frontend/'.get_frontend_settings('theme').'/cart_items');
243     }
244
245     
public function handleCartItemForBuyNowButton() {
246         
if (!$this->session->userdata('cart_items')) {
247             $
this->session->set_userdata('cart_items', array());
248         }
249
250         $course_id = $
this->input->post('course_id');
251         $previous_cart_items = $
this->session->userdata('cart_items');
252         
if (!in_array($course_id, $previous_cart_items)) {
253             array_push($previous_cart_items, $course_id);
254         }
255         $
this->session->set_userdata('cart_items', $previous_cart_items);
256         $
this->load->view('frontend/'.get_frontend_settings('theme').'/cart_items');
257     }
258
259     
public function refreshWishList() {
260         $
this->load->view('frontend/'.get_frontend_settings('theme').'/wishlist_items');
261     }
262
263     
public function refreshShoppingCart() {
264         $
this->load->view('frontend/'.get_frontend_settings('theme').'/shopping_cart_inner_view');
265     }
266
267     
public function isLoggedIn() {
268         
if ($this->session->userdata('user_login') == 1)
269         echo
true;
270         
else
271         echo
false;
272     }
273
274     
public function paypal_checkout() {
275         
if ($this->session->userdata('user_login') != 1)
276         redirect(
'home', 'refresh');
277
278         $total_price_of_checking_out = $
this->input->post('total_price_of_checking_out');
279         $page_data[
'user_details'] = $this->user_model->get_user($this->session->userdata('user_id'))->row_array();
280         $page_data[
'amount_to_pay'] = $total_price_of_checking_out;
281         $
this->load->view('frontend/'.get_frontend_settings('theme').'/paypal_checkout', $page_data);
282     }
283
284     
public function stripe_checkout() {
285         
if ($this->session->userdata('user_login') != 1)
286         redirect(
'home', 'refresh');
287
288         $total_price_of_checking_out = $
this->input->post('total_price_of_checking_out');
289         $page_data[
'user_details'] = $this->user_model->get_user($this->session->userdata('user_id'))->row_array();
290         $page_data[
'amount_to_pay'] = $total_price_of_checking_out;
291         $
this->load->view('frontend/'.get_frontend_settings('theme').'/stripe_checkout', $page_data);
292     }
293
294     
public function payment_success($method = "", $user_id = "", $amount_paid = "") {
295         
if ($method == 'stripe') {
296             $token_id = $
this->input->post('stripeToken');
297             $stripe_keys = get_settings(
'stripe_keys');
298             $values = json_decode($stripe_keys);
299             
if ($values[0]->testmode == 'on') {
300                 $public_key = $values[
0]->public_key;
301                 $secret_key = $values[
0]->secret_key;
302             }
else {
303                 $public_key = $values[
0]->public_live_key;
304                 $secret_key = $values[
0]->secret_live_key;
305             }
306             $
this->payment_model->stripe_payment($token_id, $user_id, $amount_paid, $secret_key);
307         }
308
309         $
this->crud_model->enrol_student($user_id);
310         $
this->crud_model->course_purchase($user_id, $method, $amount_paid);
311         $
this->session->set_userdata('cart_items', array());
312         $
this->session->set_flashdata('flash_message', get_phrase('payment_successfully_done'));
313         redirect(
'home', 'refresh');
314     }
315
316     
public function lesson($slug = "", $course_id = "", $lesson_id = "") {
317         
if ($this->session->userdata('user_login') != 1){
318             
if ($this->session->userdata('admin_login') != 1){
319                 redirect(
'home', 'refresh');
320             }
321         }
322
323         $course_details = $
this->crud_model->get_course_by_id($course_id)->row_array();
324         $sections = $
this->crud_model->get_section('course', $course_id);
325         
if ($sections->num_rows() > 0) {
326             $page_data[
'sections'] = $sections->result_array();
327             
if ($lesson_id == "") {
328                 $default_section = $sections->row_array();
329                 $page_data[
'section_id'] = $default_section['id'];
330                 $lessons = $
this->crud_model->get_lessons('section', $default_section['id']);
331                 
if ($lessons->num_rows() > 0) {
332                     $default_lesson = $lessons->row_array();
333                     $lesson_id = $default_lesson[
'id'];
334                     $page_data[
'lesson_id'] = $default_lesson['id'];
335                 }
else {
336                     $page_data[
'page_name'] = 'empty';
337                     $page_data[
'page_title'] = get_phrase('no_lesson_found');
338                     $page_data[
'page_body'] = get_phrase('no_lesson_found');
339                 }
340             }
else {
341                 $page_data[
'lesson_id'] = $lesson_id;
342                 $section_id = $
this->db->get_where('lesson', array('id' => $lesson_id))->row()->section_id;
343                 $page_data[
'section_id'] = $section_id;
344             }
345
346         }
else {
347             $page_data[
'sections'] = array();
348             $page_data[
'page_name'] = 'empty';
349             $page_data[
'page_title'] = get_phrase('no_section_found');
350             $page_data[
'page_body'] = get_phrase('no_section_found');
351         }
352
353         
// Check if the lesson contained course is purchased by the user
354         
if (isset($page_data['lesson_id']) && $page_data['lesson_id'] > 0) {
355             $lesson_details = $
this->crud_model->get_lessons('lesson', $page_data['lesson_id'])->row_array();
356             $lesson_id_wise_course_details = $
this->crud_model->get_course_by_id($lesson_details['course_id'])->row_array();
357             
if ($this->session->userdata('role_id') != 1 && $lesson_id_wise_course_details['user_id'] != $this->session->userdata('user_id')) {
358                 
if (!is_purchased($lesson_details['course_id'])) {
359                     redirect(site_url(
'home/course/'.slugify($course_details['title']).'/'.$course_details['id']), 'refresh');
360                 }
361             }
362         }
else {
363             
if (!is_purchased($course_id)) {
364                 redirect(site_url(
'home/course/'.slugify($course_details['title']).'/'.$course_details['id']), 'refresh');
365             }
366         }
367
368         $page_data[
'course_id'] = $course_id;
369         $page_data[
'page_name'] = 'lessons';
370         $page_data[
'page_title'] = $course_details['title'];
371         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
372     }
373
374     
public function my_courses_by_category() {
375         $category_id = $
this->input->post('category_id');
376         $course_details = $
this->crud_model->get_my_courses_by_category_id($category_id)->result_array();
377         $page_data[
'my_courses'] = $course_details;
378         $
this->load->view('frontend/'.get_frontend_settings('theme').'/reload_my_courses', $page_data);
379     }
380
381     
public function search($search_string = "") {
382         
if (isset($_GET['query']) && !empty($_GET['query'])) {
383             $search_string = $_GET[
'query'];
384             $page_data[
'courses'] = $this->crud_model->get_courses_by_search_string($search_string)->result_array();
385         }
else {
386             $
this->session->set_flashdata('error_message', get_phrase('no_search_value_found'));
387             redirect(site_url(),
'refresh');
388         }
389
390         
if (!$this->session->userdata('layout')) {
391             $
this->session->set_userdata('layout', 'list');
392         }
393         $page_data[
'layout'] = $this->session->userdata('layout');
394         $page_data[
'page_name'] = 'courses_page';
395         $page_data[
'search_string'] = $search_string;
396         $page_data[
'page_title'] = get_phrase('search_results');
397         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
398     }
399     
public function my_courses_by_search_string() {
400         $search_string = $
this->input->post('search_string');
401         $course_details = $
this->crud_model->get_my_courses_by_search_string($search_string)->result_array();
402         $page_data[
'my_courses'] = $course_details;
403         $
this->load->view('frontend/'.get_frontend_settings('theme').'/reload_my_courses', $page_data);
404     }
405
406     
public function get_my_wishlists_by_search_string() {
407         $search_string = $
this->input->post('search_string');
408         $course_details = $
this->crud_model->get_courses_of_wishlists_by_search_string($search_string);
409         $page_data[
'my_courses'] = $course_details;
410         $
this->load->view('frontend/'.get_frontend_settings('theme').'/reload_my_wishlists', $page_data);
411     }
412
413     
public function reload_my_wishlists() {
414         $my_courses = $
this->crud_model->get_courses_by_wishlists();
415         $page_data[
'my_courses'] = $my_courses;
416         $
this->load->view('frontend/'.get_frontend_settings('theme').'/reload_my_wishlists', $page_data);
417     }
418
419     
public function get_course_details() {
420         $course_id = $
this->input->post('course_id');
421         $course_details = $
this->crud_model->get_course_by_id($course_id)->row_array();
422         echo $course_details[
'title'];
423     }
424
425     
public function rate_course() {
426         $data[
'review'] = $this->input->post('review');
427         $data[
'ratable_id'] = $this->input->post('course_id');
428         $data[
'ratable_type'] = 'course';
429         $data[
'rating'] = $this->input->post('starRating');
430         $data[
'date_added'] = strtotime(date('D, d-M-Y'));
431         $data[
'user_id'] = $this->session->userdata('user_id');
432         $
this->crud_model->rate($data);
433     }
434
435     
public function about_us() {
436         $page_data[
'page_name'] = 'about_us';
437         $page_data[
'page_title'] = get_phrase('about_us');
438         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
439     }
440
441     
public function terms_and_condition() {
442         $page_data[
'page_name'] = 'terms_and_condition';
443         $page_data[
'page_title'] = get_phrase('terms_and_condition');
444         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
445     }
446
447     
public function privacy_policy() {
448         $page_data[
'page_name'] = 'privacy_policy';
449         $page_data[
'page_title'] = get_phrase('privacy_policy');
450         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
451     }
452
453
454     
// Version 1.1
455     
public function dashboard($param1 = "") {
456         
if ($this->session->userdata('user_login') != 1){
457             redirect(
'home', 'refresh');
458         }
459
460         
if ($param1 == "") {
461             $page_data[
'type'] = 'active';
462         }
else {
463             $page_data[
'type'] = $param1;
464         }
465
466         $page_data[
'page_name'] = 'instructor_dashboard';
467         $page_data[
'page_title'] = get_phrase('instructor_dashboard');
468         $page_data[
'user_id'] = $this->session->userdata('user_id');
469         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
470     }
471
472     
public function create_course() {
473         
if ($this->session->userdata('user_login') != 1){
474             redirect(
'home', 'refresh');
475         }
476
477         $page_data[
'page_name'] = 'create_course';
478         $page_data[
'page_title'] = get_phrase('create_course');
479         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
480     }
481
482     
public function edit_course($param1 = "", $param2 = "") {
483         
if ($this->session->userdata('user_login') != 1){
484             redirect(
'home', 'refresh');
485         }
486
487         
if ($param2 == "") {
488             $page_data[
'type'] = 'edit_course';
489         }
else {
490             $page_data[
'type'] = $param2;
491         }
492         $page_data[
'page_name'] = 'manage_course_details';
493         $page_data[
'course_id'] = $param1;
494         $page_data[
'page_title'] = get_phrase('edit_course');
495         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
496     }
497
498     
public function course_action($param1 = "", $param2 = "") {
499         
if ($this->session->userdata('user_login') != 1){
500             redirect(
'home', 'refresh');
501         }
502
503         
if ($param1 == 'create') {
504             
if (isset($_POST['create_course'])) {
505                 $
this->crud_model->add_course();
506                 redirect(site_url(
'home/create_course'), 'refresh');
507             }
else {
508                 $
this->crud_model->add_course('save_to_draft');
509                 redirect(site_url(
'home/create_course'), 'refresh');
510             }
511         }elseif ($param1 ==
'edit') {
512             
if (isset($_POST['publish'])) {
513                 $
this->crud_model->update_course($param2, 'publish');
514                 redirect(site_url(
'home/dashboard'), 'refresh');
515             }
else {
516                 $
this->crud_model->update_course($param2, 'save_to_draft');
517                 redirect(site_url(
'home/dashboard'), 'refresh');
518             }
519         }
520     }
521
522
523     
public function sections($action = "", $course_id = "", $section_id = "") {
524         
if ($this->session->userdata('user_login') != 1){
525             redirect(
'home', 'refresh');
526         }
527
528         
if ($action == "add") {
529             $
this->crud_model->add_section($course_id);
530
531         }elseif ($action ==
"edit") {
532             $
this->crud_model->edit_section($section_id);
533
534         }elseif ($action ==
"delete") {
535             $
this->crud_model->delete_section($course_id, $section_id);
536             $
this->session->set_flashdata('flash_message', get_phrase('section_deleted'));
537             redirect(site_url(
"home/edit_course/$course_id/manage_section"), 'refresh');
538
539         }elseif ($action ==
"serialize_section") {
540             $container = array();
541             $serialization = json_decode($
this->input->post('updatedSerialization'));
542             
foreach ($serialization as $key) {
543                 array_push($container, $key->id);
544             }
545             $json = json_encode($container);
546             $
this->crud_model->serialize_section($course_id, $json);
547         }
548         $page_data[
'course_id'] = $course_id;
549         $page_data[
'course_details'] = $this->crud_model->get_course_by_id($course_id)->row_array();
550         
return $this->load->view('frontend/'.get_frontend_settings('theme').'/reload_section', $page_data);
551     }
552
553     
public function manage_lessons($action = "", $course_id = "", $lesson_id = "") {
554         
if ($this->session->userdata('user_login') != 1){
555             redirect(
'home', 'refresh');
556         }
557         
if ($action == 'add') {
558             $
this->crud_model->add_lesson();
559             $
this->session->set_flashdata('flash_message', get_phrase('lesson_added'));
560         }
561         elseif ($action ==
'edit') {
562             $
this->crud_model->edit_lesson($lesson_id);
563             $
this->session->set_flashdata('flash_message', get_phrase('lesson_updated'));
564         }
565         elseif ($action ==
'delete') {
566             $
this->crud_model->delete_lesson($lesson_id);
567             $
this->session->set_flashdata('flash_message', get_phrase('lesson_deleted'));
568         }
569         redirect(
'home/edit_course/'.$course_id.'/manage_lesson');
570     }
571
572     
public function lesson_editing_form($lesson_id = "", $course_id = "") {
573         
if ($this->session->userdata('user_login') != 1){
574             redirect(
'home', 'refresh');
575         }
576         $page_data[
'type'] = 'manage_lesson';
577         $page_data[
'course_id'] = $course_id;
578         $page_data[
'lesson_id'] = $lesson_id;
579         $page_data[
'page_name'] = 'lesson_edit';
580         $page_data[
'page_title'] = get_phrase('update_lesson');
581         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
582     }
583
584     
public function download($filename = "") {
585         $tmp = explode(
'.', $filename);
586         $fileExtension = strtolower(end($tmp));
587         $yourFile = base_url().
'uploads/lesson_files/'.$filename;
588         $file = @fopen($yourFile,
"rb");
589
590         header(
'Content-Description: File Transfer');
591         header(
'Content-Type: text/plain');
592         header(
'Content-Disposition: attachment; filename='.$filename);
593         header(
'Expires: 0');
594         header(
'Cache-Control: must-revalidate');
595         header(
'Pragma: public');
596         header(
'Content-Length: ' . filesize($yourFile));
597         
while (!feof($file)) {
598             print(@fread($file,
1024 * 8));
599             ob_flush();
600             flush();
601         }
602     }
603
604     
// Version 1.3 codes
605     
public function get_enrolled_to_free_course($course_id) {
606         
if ($this->session->userdata('user_login') == 1) {
607             $
this->crud_model->enrol_to_free_course($course_id, $this->session->userdata('user_id'));
608             redirect(site_url(
'home/my_courses'), 'refresh');
609         }
else {
610             redirect(site_url(
'login'), 'refresh');
611         }
612     }
613
614     
// Version 1.4 codes
615     
public function login() {
616         
if ($this->session->userdata('admin_login')) {
617             redirect(site_url(
'admin'), 'refresh');
618         }elseif ($
this->session->userdata('user_login')) {
619             redirect(site_url(
'user'), 'refresh');
620         }
621         $page_data[
'page_name'] = 'login';
622         $page_data[
'page_title'] = get_phrase('login');
623         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
624     }
625
626     
public function sign_up() {
627         
if ($this->session->userdata('admin_login')) {
628             redirect(site_url(
'admin'), 'refresh');
629         }elseif ($
this->session->userdata('user_login')) {
630             redirect(site_url(
'user'), 'refresh');
631         }
632         $page_data[
'page_name'] = 'sign_up';
633         $page_data[
'page_title'] = get_phrase('sign_up');
634         $
this->load->view('frontend/'.get_frontend_settings('theme').'/index', $page_data);
635     }
636
637     
public function submit_quiz() {
638         $submitted_quiz_info = array();
639         $container = array();
640         $quiz_id = $
this->input->post('lesson_id');
641         $quiz_questions = $
this->crud_model->get_quiz_questions($quiz_id)->result_array();
642         $total_correct_answers =
0;
643         
foreach ($quiz_questions as $quiz_question) {
644             $submitted_answer_status =
0;
645             $correct_answers = json_decode($quiz_question[
'correct_answers']);
646             $submitted_answers = array();
647             
foreach ($this->input->post($quiz_question['id']) as $each_submission) {
648                 
if (isset($each_submission)) {
649                     array_push($submitted_answers, $each_submission);
650                 }
651             }
652             sort($correct_answers);
653             sort($submitted_answers);
654             
if ($correct_answers == $submitted_answers) {
655                 $submitted_answer_status =
1;
656                 $total_correct_answers++;
657             }
658             $container = array(
659                 
"question_id" => $quiz_question['id'],
660                 
'submitted_answer_status' => $submitted_answer_status,
661                 
"submitted_answers" => json_encode($submitted_answers),
662                 
"correct_answers" => json_encode($correct_answers),
663             );
664             array_push($submitted_quiz_info, $container);
665         }
666         $page_data[
'submitted_quiz_info'] = $submitted_quiz_info;
667         $page_data[
'total_correct_answers'] = $total_correct_answers;
668         $page_data[
'total_questions'] = count($quiz_questions);
669         $
this->load->view('frontend/'.get_frontend_settings('theme').'/quiz_result', $page_data);
670     }
671
672     
private function access_denied_courses($course_id){
673         $course_details = $
this->crud_model->get_course_by_id($course_id)->row_array();
674         
if ($course_details['status'] == 'draft' && $course_details['user_id'] != $this->session->userdata('user_id')) {
675             $
this->session->set_flashdata('error_message', get_phrase('you_do_not_have_permission_to_access_this_course'));
676             redirect(site_url(
'home'), 'refresh');
677         }elseif ($course_details[
'status'] == 'pending') {
678             
if ($course_details['user_id'] != $this->session->userdata('user_id') && $this->session->userdata('role_id') != 1) {
679                 $
this->session->set_flashdata('error_message', get_phrase('you_do_not_have_permission_to_access_this_course'));
680                 redirect(site_url(
'home'), 'refresh');
681             }
682         }
683     }
684 }


Gõ tìm kiếm nhanh...