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 }