%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Quiz extends CI_Controller { function __construct() { parent::__construct(); $this->load->database(); $this->load->model("quiz_model"); $this->load->model("user_model"); $this->load->model("result_model"); $this->lang->load('basic', $this->config->item('language')); // redirect if not loggedin if(!$this->session->userdata('logged_in')){ redirect('login'); } } public function index($limit='0') { $logged_in=$this->session->userdata('logged_in'); // Validate Token validateusercount($this->session->userdata('username'),$this->session->userdata('token')); $data['limit']=$limit; $data['title']=$this->lang->line('quiz').' - '. $this->lang->line('quiz_tagline'); // fetching quiz list $list_uid = ''; if($logged_in['su']=='1') { $list_uid = $logged_in['uid']; } $gid_list = ''; if($logged_in['su']=='0') { //Get Current User All Group List $gid_list = $this->quiz_model->getGroupList($logged_in['uid']); } $data['result']= $result = $this->quiz_model->quiz_list($limit,$list_uid,$gid_list); $gid=$logged_in['gid']; $uid=$logged_in['uid']; $userAttemptsArray = array(); if($logged_in['su']=='0') { foreach($result as $val){ $quid = $val['quid']; $maximum_attempt=$this->quiz_model->count_result($quid,$uid); $userAttemptsArray[$quid] = $maximum_attempt; } } $allow = false; $assignedModule = assignModuleList($logged_in['role_id']); if(array_key_exists('qbank',$assignedModule)) { $allow = true; } $data['userAttempts'] = $userAttemptsArray; $this->load->view('header',$data); if($logged_in['su']=='0' && $allow == false) { // Get Quiz wise Registration/ Participation Stats $data['total_participation']= $this->quiz_model->get_quiz_summary($list_uid); $data['total_registration']= $this->quiz_model->get_quiz_stats($list_uid); $this->load->view('myquiz_list',$data); } else { // Get Quiz wise Registration/ Participation Stats $data['total_participation']= $this->quiz_model->get_quiz_summary($list_uid); $data['total_registration']= $this->quiz_model->get_quiz_stats($list_uid); $gidList = ''; if($logged_in['su']=='1') { $gidList = explode(',',$logged_in['gid']); } $data['group_list']=$this->user_model->group_list(NULL, $gidList); $this->load->view('quiz_list',$data); } $this->load->view('footer',$data); setHistory('Go to Quiz Listing Module'); } public function add_new() { $logged_in=$this->session->userdata('logged_in'); // Validate Token validateusercount($this->session->userdata('username'),$this->session->userdata('token')); $assignedModule = assignModuleList($logged_in['role_id']); if(!array_key_exists('qbank',$assignedModule)) { exit($this->lang->line('permission_denied')); } $uid = ''; $gidList = ''; if($logged_in['su']=='1') { $uid = $logged_in['uid']; $gidList = explode(',',$logged_in['gid']); } else if($logged_in['su']=='0') { $uid = $logged_in['admin_id']; } $data['title']=$this->lang->line('add_new').' '.$this->lang->line('quiz'); // fetching group list $data['group_list']=$this->user_model->group_list(NULL, $gidList); $this->load->view('header',$data); $this->load->view('new_quiz',$data); $this->load->view('footer',$data); setHistory('Go to Add New quiz Module'); } public function copy_quiz($quid) { $logged_in=$this->session->userdata('logged_in'); // Validate Token validateusercount($this->session->userdata('username'),$this->session->userdata('token')); $assignedModule = assignModuleList($logged_in['role_id']); if(!array_key_exists('qbank',$assignedModule)) { exit($this->lang->line('permission_denied')); } $uid = ''; if($logged_in['su']=='1') { $uid = $logged_in['uid']; $gidList = explode(',',$logged_in['gid']); } else if($logged_in['su']=='0') { $uid = $logged_in['admin_id']; } // Set Page Title $data['title'] = 'Copy '.$this->lang->line('quiz'); // fetching group list //$data['group_list']=$this->user_model->group_list(NULL, $gidList); $quiz = $this->quiz_model->get_quiz($quid,$uid); // Copy Quiz $this->quiz_model->copy_quiz($quiz); $this->session->set_flashdata('message', "<div class='alert alert-success'>Quiz Copy Succesfully.</div>"); setHistory('Go to Copy quiz Module'); redirect('quiz'); } public function edit_quiz($quid) { $logged_in=$this->session->userdata('logged_in'); // Validate Token validateusercount($this->session->userdata('username'),$this->session->userdata('token')); $assignedModule = assignModuleList($logged_in['role_id']); if(!array_key_exists('qbank',$assignedModule)) { exit($this->lang->line('permission_denied')); } $uid = ''; if($logged_in['su']=='1') { $uid = $logged_in['uid']; $gidList = explode(',',$logged_in['gid']); } else if($logged_in['su']=='0') { $uid = $logged_in['admin_id']; } // Set Page Title $data['title']=$this->lang->line('edit').' '.$this->lang->line('quiz'); // fetching group list $data['group_list']=$this->user_model->group_list(NULL, $gidList); $data['quiz']=$this->quiz_model->get_quiz($quid,$uid); if($data['quiz']['question_selection']=='0'){ $data['questions']=$this->quiz_model->get_questions($data['quiz']['qids']); } else{ $this->load->model("qbank_model"); $data['qcl']=$this->quiz_model->get_qcl($data['quiz']['quid'],$uid); $data['category_list']=$this->qbank_model->category_list($uid); $data['level_list']=$this->qbank_model->level_list($uid); } $this->load->view('header',$data); $this->load->view('edit_quiz',$data); $this->load->view('footer',$data); setHistory('Go to Add Edit quiz Module'); } /* * Function : invite_quiz * */ public function invite_quiz($quid) { $logged_in=$this->session->userdata('logged_in'); // Validate Token validateusercount($this->session->userdata('username'),$this->session->userdata('token')); $assignedModule = assignModuleList($logged_in['role_id']); if(!array_key_exists('qbank',$assignedModule)) { exit($this->lang->line('permission_denied')); } $uid = ''; $uid = $logged_in['uid']; $data['title']='Invite '.$this->lang->line('quiz'); $data['quiz']=$this->quiz_model->get_quiz($quid,$uid); $this->load->view('header',$data); $this->load->view('invite_quiz',$data); $this->load->view('footer',$data); setHistory('Go to invite quiz Module'); } /* * Function : sample_quiz * */ public function sample_quiz($quid) { $logged_in=$this->session->userdata('logged_in'); // Validate Token validateusercount($this->session->userdata('username'),$this->session->userdata('token')); $assignedModule = assignModuleList($logged_in['role_id']); if(!array_key_exists('qbank',$assignedModule)) { exit($this->lang->line('permission_denied')); } $uid = ''; if($logged_in['su']=='1') { $uid = $logged_in['uid']; } else if($logged_in['su']=='0') { $uid = $logged_in['admin_id']; } $data['title']='Sample '.$this->lang->line('quiz'); // fetching group list $data['group_list']=$this->user_model->group_list($uid); $data['quiz']=$this->quiz_model->get_quiz($quid,$uid); // Get Quizsample $response = $this->quiz_model->quizsample_result($quid,$uid); $data['quiz_results'] = $this->quiz_model->samplequiz_result($response); $rid = $data['quiz_results']['rid']; $data['saved_answers']=$this->quiz_model->saved_answers($rid); // Get all RC Question $rc_qid = $data['quiz_results']['rc_qid']; if($rc_qid!=''){ $data['rcquestionlist'] = $this->quiz_model->rcanswerQuestionList($rc_qid); } $data['questions']=$this->quiz_model->get_questions($data['quiz_results']['r_qids']); // get options $data['options']=$this->quiz_model->get_options($data['quiz_results']['r_qids']); $this->load->view('header',$data); $this->load->view('sample_quiz',$data); $this->load->view('footer',$data); setHistory('Go to Sample quiz Module'); } function no_q_available($cid,$lid){ $val="<select name='noq[]'>"; $query=$this->db->query(" select * from savsoft_qbank where cid='$cid' and lid='$lid' "); $nor=$query->num_rows(); for($i=0; $i<= $nor; $i++){ $val.="<option value='".$i."' >".$i."</option>"; } $val.="</select>"; echo $val; } function remove_qid($quid,$qid){ if($this->quiz_model->remove_qid($quid,$qid)){ $this->session->set_flashdata('message', "<div class='alert alert-success'>".$this->lang->line('removed_successfully')." </div>"); } redirect('quiz/edit_quiz/'.$quid); } function add_qid($quid,$qid){ $this->quiz_model->add_qid($quid,$qid); echo 'added'; } function pre_add_question($quid,$limit='0',$cid='0',$lid='0',$level='0'){ $cid=$this->input->post('cid'); $lid=$this->input->post('lid'); $level=$this->input->post('level'); setHistory('Go to pre add question Quiz Module'); redirect('quiz/add_question/'.$quid.'/'.$limit.'/'.$cid.'/'.$lid.'/'.$level); } public function add_question($quid,$limit='0',$cid='0',$lid='0',$level='0') { $this->load->model("qbank_model"); $logged_in=$this->session->userdata('logged_in'); $assignedModule = assignModuleList($logged_in['role_id']); if(!array_key_exists('qbank',$assignedModule)) { exit($this->lang->line('permission_denied')); } $uid = ''; if($logged_in['su']=='1') { $uid = $logged_in['uid']; } else if($logged_in['su']=='0') { $uid = $logged_in['admin_id']; } $data['quiz']=$this->quiz_model->get_quiz($quid); $data['title']=$this->lang->line('add_question_into_quiz').': '.$data['quiz']['quiz_name']; if($data['quiz']['question_selection']=='0'){ $other_cids = $logged_in['catids']; $data['result']=$this->qbank_model->question_list($limit,$cid,$lid,$uid, $level, NULL, $other_cids); $data['category_list']=$this->qbank_model->category_list($uid, $other_cids); $data['level_list']=$this->qbank_model->level_list($uid, NULL, $other_cids); } else{ exit($this->lang->line('permission_denied')); } $data['limit']=$limit; $data['cid']=$cid; $data['lid']=$lid; $data['quid']=$quid; $data['level']=$level; $this->load->view('header',$data); $this->load->view('add_question_into_quiz',$data); $this->load->view('footer',$data); setHistory('Go to add question Quiz Module'); } function up_question($quid,$qid,$not='1'){ $logged_in=$this->session->userdata('logged_in'); $assignedModule = assignModuleList($logged_in['role_id']); if(!array_key_exists('qbank',$assignedModule)) { exit($this->lang->line('permission_denied')); } for($i=1; $i <= $not; $i++){ $this->quiz_model->up_question($quid,$qid); } setHistory('Go to pre question Quiz Module'); redirect('quiz/edit_quiz/'.$quid, 'refresh'); } function down_question($quid,$qid,$not='1') { $logged_in=$this->session->userdata('logged_in'); $assignedModule = assignModuleList($logged_in['role_id']); if(!array_key_exists('qbank',$assignedModule)) { exit($this->lang->line('permission_denied')); } for($i=1; $i <= $not; $i++){ $this->quiz_model->down_question($quid,$qid); } setHistory('Go to down question Quiz Module'); redirect('quiz/edit_quiz/'.$quid, 'refresh'); } public function insert_quiz() { $logged_in=$this->session->userdata('logged_in'); $assignedModule = assignModuleList($logged_in['role_id']); if(!array_key_exists('qbank',$assignedModule)) { exit($this->lang->line('permission_denied')); } $uid = ''; if($logged_in['su']=='1') { $uid = $logged_in['uid']; } else if($logged_in['su']=='0') { $uid = $logged_in['admin_id']; } $this->load->library('form_validation'); $this->form_validation->set_rules('quiz_name', 'quiz_name', 'required'); if ($this->form_validation->run() == FALSE) { $this->session->set_flashdata('message', "<div class='alert alert-danger'>".validation_errors()." </div>"); setHistory('Go to pre insert Quiz Module'); redirect('quiz/add_new/'); } else { $_POST['admin_id'] = $uid; $quid=$this->quiz_model->insert_quiz(); $this->session->set_flashdata('message', "<div class='alert alert-success'>".$this->lang->line('quiz_added_successfully')." </div>"); setHistory('Go to pre insert Quiz Module'); redirect('quiz/edit_quiz/'.$quid); } } public function update_quiz($quid) { $logged_in=$this->session->userdata('logged_in'); $assignedModule = assignModuleList($logged_in['role_id']); if(!array_key_exists('qbank',$assignedModule)) { exit($this->lang->line('permission_denied')); } $this->load->library('form_validation'); $this->form_validation->set_rules('quiz_name', 'quiz_name', 'required'); if ($this->form_validation->run() == FALSE) { $this->session->set_flashdata('message', "<div class='alert alert-danger'>".validation_errors()." </div>"); redirect('quiz/edit_quiz/'.$quid); setHistory('Go to pre update Quiz Module'); } else { $this->session->set_flashdata('message', "<div class='alert alert-success'>".$this->lang->line('quiz_updated_successfully')." </div>"); $quid=$this->quiz_model->update_quiz($quid); setHistory('Go to pre update Quiz Module'); redirect('quiz/edit_quiz/'.$quid); } } public function remove_quiz($quid){ $logged_in=$this->session->userdata('logged_in'); $assignedModule = assignModuleList($logged_in['role_id']); if(!array_key_exists('qbank',$assignedModule)) { exit($this->lang->line('permission_denied')); } if($this->quiz_model->remove_quiz($quid)){ $this->session->set_flashdata('message', "<div class='alert alert-success'>".$this->lang->line('removed_successfully')." </div>"); }else{ $this->session->set_flashdata('message', "<div class='alert alert-danger'>".$this->lang->line('error_to_remove')." </div>"); } setHistory('Go to pre remove Quiz Module'); redirect('quiz'); } /* * function : quiz_detail * Description : * Createdon: */ public function quiz_detail($quid) { $logged_in=$this->session->userdata('logged_in'); $gid=$logged_in['gid']; $data['title']=$this->lang->line('attempt').' '.$this->lang->line('quiz'); $data['quiz']= $quiz = $this->quiz_model->get_quiz($quid); // Check Form Enable Or Not if($quiz['form_display']=='1') { $resp = $this->quiz_model->get_basic_detail($quid, $logged_in['uid']); if($resp<>'1'){ redirect('quiz/user_detail/'.$quid); } } $this->load->view('header',$data); $this->load->view('quiz_detail',$data); $this->load->view('footer',$data); setHistory('Go to quiz details module for '.$quiz['quiz_name']); } /* * function : user_detail * Description : * Createdon: */ public function user_detail($quid){ $logged_in=$this->session->userdata('logged_in'); $gid=$logged_in['gid']; $data['title'] = $this->lang->line('fill_basice_details'); $data['quiz']= $quiz = $this->quiz_model->get_quiz($quid); // Get School List $data['school_list'] = $this->quiz_model->get_school($quid); /// Get Department List $data['department_list'] = $this->quiz_model->get_department(); $this->load->view('header',$data); $this->load->view('user_detail',$data); $this->load->view('footer',$data); setHistory('Go to user details quiz Module'); } public function getdepartmentlist($school_id) { $levelArray = array(); $school_id = $_POST['school_id']; if($school_id>0){ $dept_list = $this->quiz_model->get_department($school_id); foreach($dept_list as $val){ $depArray[$val['id']] = $val['department_name']; } header('Content-type: application/json'); echo json_encode($depArray); } exit(); } public function insert_basic_detail($quid) { $logged_in=$this->session->userdata('logged_in'); $uid = ''; $uid = $logged_in['uid']; $this->load->library('form_validation'); $this->form_validation->set_rules('full_name', 'Full Name', 'required'); $this->form_validation->set_rules('school_id', 'School Name', 'required'); $this->form_validation->set_rules('department_id', 'Department Name', 'required'); $this->form_validation->set_rules('section', 'Section Name', 'required'); $this->form_validation->set_rules('semester', 'Semester', 'required'); if ($this->form_validation->run() == FALSE){ $this->session->set_flashdata('message', "<div class='alert alert-danger'>".validation_errors()." </div>"); redirect('quiz/user_detail/'.$quid); } else { $_POST['user_id'] = $uid; $quid=$this->quiz_model->insert_basic_detail(); $this->session->set_flashdata('message', "<div class='alert alert-success'>".$this->lang->line('basic_added_successfully')." </div>"); setHistory('Go to insert basic details quiz module'); redirect('quiz/quiz_detail/'.$quid); } } /* * Function :validate_quiz * */ public function validate_quiz($quid){ $logged_in=$this->session->userdata('logged_in'); $gid=$logged_in['gid']; $uid=$logged_in['uid']; // if this quiz already opened by user then resume it $open_result=$this->quiz_model->open_result($quid,$uid); // Get Quiz Details $data['quiz'] = $qdetails = $this->quiz_model->get_quiz($quid); setHistory('Go to validate Quiz Module '.$qdetails['quiz_name']); if($open_result != '0'){ $this->session->set_userdata('rid', $open_result); redirect('quiz/attempt/'.$open_result); } // Get Quiz Details $data['quiz'] = $quizList = $this->quiz_model->get_quiz($quid); // validate assigned group if($logged_in['su']=='0') { $gid_list = $this->quiz_model->getGroupQuizLists($logged_in['uid'],$quid); $qid_list = $this->quiz_model->getAssignNewQuiz($logged_in['uid'],$quid); $gids_list = $this->quiz_model->getAssignNewGroupQuiz($logged_in['uid'],explode(',',$data['quiz']['gids'])); if($gids_list>0 ){ //if($qid_list<>$data['quiz']['quid']){ if(!in_array($gids_list,explode(',',$data['quiz']['gids']))){ $this->session->set_flashdata('message', "<div class='alert alert-danger'>".$this->lang->line('quiz_not_assigned_to_your_group')." </div>"); setHistory($this->lang->line('quiz_not_assigned_to_your_group').' '.$qdetails['quiz_name']); redirect('quiz/quiz_detail/'.$quid); } } else { if(empty($gids_list) && $quizList['quiz_type']=='1' && !empty($qid_list)) { //print_r($qid_list); die; if($qid_list<>$data['quiz']['quid']){ $this->session->set_flashdata('message', "<div class='alert alert-danger'>".$this->lang->line('quiz_not_assigned_to_your_group')." </div>"); setHistory($this->lang->line('quiz_not_assigned_to_your_group').' '.$qdetails['quiz_name']); redirect('quiz/quiz_detail/'.$quid); } } else if(!in_array($gid,explode(',',$data['quiz']['gids']))){ $this->session->set_flashdata('message', "<div class='alert alert-danger'>".$this->lang->line('quiz_not_assigned_to_your_group')." </div>"); redirect('quiz/quiz_detail/'.$quid); } } } // validate start end date/time if($data['quiz']['start_date'] > time()){ $this->session->set_flashdata('message', "<div class='alert alert-danger'>".$this->lang->line('quiz_not_available')." </div>"); setHistory($this->lang->line('quiz_not_available').' '.$qdetails['quiz_name']); redirect('quiz/quiz_detail/'.$quid); } // validate start end date/time if($data['quiz']['end_date'] < time()){ $this->session->set_flashdata('message', "<div class='alert alert-danger'>".$this->lang->line('quiz_ended')." </div>"); setHistory($this->lang->line('quiz_ended').' '.$qdetails['quiz_name']); redirect('quiz/quiz_detail/'.$quid); } // validate ip address if($data['quiz']['ip_address'] !=''){ $ip_address=explode(",",$data['quiz']['ip_address']); $myip=$_SERVER['REMOTE_ADDR']; if(!in_array($myip,$ip_address)){ $this->session->set_flashdata('message', "<div class='alert alert-danger'>".$this->lang->line('ip_declined')." </div>"); redirect('quiz/quiz_detail/'.$quid); } } // validate maximum attempts $maximum_attempt=$this->quiz_model->count_result($quid,$uid); $maximum_attempts = $data['quiz']['maximum_attempts']; if($logged_in['su']>='1'){ $maximum_attempts = 100; } if($maximum_attempts <= $maximum_attempt){ $this->session->set_flashdata('message', "<div class='alert alert-danger'>".$this->lang->line('reached_maximum_attempt')." </div>"); setHistory($this->lang->line('reached_maximum_attempt').' '.$qdetails['quiz_name']); redirect('quiz/quiz_detail/'.$quid); } // insert result row and get rid (result id) $rid=$this->quiz_model->insert_result($quid,$uid); $this->session->set_userdata('rid', $rid); redirect('quiz/attempt/'.$rid); } function attempt($rid){ $srid=$this->session->userdata('rid'); // if linked and session rid is not matched then something wrong. // get result and quiz info and validate time period $data['quiz']= $qdetails =$this->quiz_model->quiz_result($rid); if($rid != $srid){ $this->session->set_flashdata('message', "<div class='alert alert-danger'>".$this->lang->line('quiz_ended')." </div>"); setHistory($this->lang->line('quiz_ended').' '.$qdetails['quiz_name']); redirect('quiz/'); } if(!$this->session->userdata('logged_in')){ exit($this->lang->line('permission_denied')); } // Chceck Browser Cache $pageWasRefreshed = isset($_SERVER['HTTP_CACHE_CONTROL']) && $_SERVER['HTTP_CACHE_CONTROL'] === 'max-age=0'; if($pageWasRefreshed>0 ) { $this->session->set_flashdata('message', "<div id='myElem' class='alert alert-danger'>Please do not refresh the windows or your quiz will be submitted.</div>"); setHistory("Please do not refresh the windows or your quiz will be submitted - $pageWasRefreshed - ".$qdetails['quiz_name']); setUserWarning('Please do not refresh the windows or your quiz will be submitted', $qdetails['quid'], $pageWasRefreshed, $rid); } // get result and quiz info and validate time period $data['quiz']=$this->quiz_model->quiz_result($rid); $data['saved_answers']=$this->quiz_model->saved_answers($rid); // end date/time if($data['quiz']['end_date'] < time()){ $this->quiz_model->submit_result($rid); $this->session->unset_userdata('rid'); $this->session->set_flashdata('message', "<div class='alert alert-danger'>".$this->lang->line('quiz_ended')." </div>"); setHistory($this->lang->line('quiz_ended').' '.$qdetails['quiz_name']); redirect('quiz/quiz_detail/'.$data['quiz']['quid']); } // end date/time if(($data['quiz']['start_time']+($data['quiz']['duration']*60)) < time()){ $this->quiz_model->submit_result($rid); $this->session->unset_userdata('rid'); $this->session->set_flashdata('message', "<div class='alert alert-danger'>".$this->lang->line('time_over')." </div>"); setHistory($this->lang->line('time_over').' '.$qdetails['quiz_name']); redirect('quiz/quiz_detail/'.$data['quiz']['quid']); } // remaining time in seconds $data['seconds']=($data['quiz']['duration']*60) - (time()- $data['quiz']['start_time']); // get questions $data['questions']=$this->quiz_model->get_questions($data['quiz']['r_qids']); // get options $data['options']=$this->quiz_model->get_options_list($data['quiz']['r_qids']); $data['title'] = $data['quiz']['quiz_name']; $data['quiz_id'] = $data['quiz']['quid']; $data['attempt_id'] = $rid; $this->load->view('header',$data); $this->load->view('quiz_attempt',$data); $this->load->view('footer',$data); setHistory('Go to quiz attempt screen page for - '.$qdetails['quiz_name']); } /* * function : savequizwarning */ public function savequizwarning(){ $message = $_POST['msg']; $quiz_id = $_POST['quiz_id']; $warning_cont = $_POST['warning_cont']; $attempt_id = $_POST['attempt_id']; if($message!=''){ setHistory($message.' Warning Count - '.$warning_cont); setUserWarning($message, $quiz_id, $warning_cont, $attempt_id); } exit(); } function save_answer(){ echo "<pre>"; print_r($_POST); // insert user response and calculate scroe echo $this->quiz_model->insert_answer(); } function set_ind_time(){ // update questions time spent $this->quiz_model->set_ind_time(); } function upload_photo(){ if(isset($_FILES['webcam'])){ $targets = 'photo/'.$_GET['loc'].'/'; $filename=time().'.jpg'; $targets = $targets.''.$filename; if(move_uploaded_file($_FILES['webcam']['tmp_name'], $targets)){ $this->session->set_flashdata('photoname', $filename); } } } function submit_quiz(){ if($this->quiz_model->submit_result()){ $this->session->set_flashdata('message', "<div class='alert alert-success'>".$this->lang->line('quiz_submit_successfully')." </div>"); } else { $this->session->set_flashdata('message', "<div class='alert alert-danger'>".$this->lang->line('error_to_submit')." </div>"); } $rid = $_SESSION['rid']; $this->sendResultEmail($rid); $this->session->unset_userdata('rid'); setHistory('After Quiz submittion - Go to quiz view result module'); redirect('/result/view_result/'.$rid); } function assign_score($rid,$qno,$score){ $logged_in=$this->session->userdata('logged_in'); if($logged_in['su']=='0'){ exit($this->lang->line('permission_denied')); } $this->quiz_model->assign_score($rid,$qno,$score); echo '1'; } /* * function: generate_quizsample */ function generate_quizsample($quid) { $data = array(); /*if($data['result']['gen_certificate']=='0'){ exit(); }*/ $logged_in=$this->session->userdata('logged_in'); $uid = ''; $uid = $logged_in['uid']; // fetching group list $data['group_list']=$this->user_model->group_list($uid); // Get Quiz List $data['quiz']=$this->quiz_model->get_quiz($quid,$uid); // Get Quizsample $response = $this->quiz_model->quizsample_result($quid,$uid); // Get samplequiz_result $data['quiz_results'] = $this->quiz_model->samplequiz_result($response); $rid = $data['quiz_results']['rid']; // Get all RC Question $rc_qid = $data['quiz_results']['rc_qid']; if($rc_qid!=''){ $data['rcquestionlist'] = $this->quiz_model->rcanswerQuestionList($rc_qid); } // get questions $data['questions']=$this->quiz_model->get_questions($data['quiz_results']['r_qids']); // get options $data['options']=$this->quiz_model->get_options($data['quiz_results']['r_qids']); //print_r($data['options']); die; setHistory('Go to generate quiz pdfview module'); $this->load->library('pdf'); $this->pdf->load_view('generate_quiz_pdfview', $data, TRUE); $this->pdf->render(); $filename = date("FjYgias"); ob_end_clean(); $this->pdf->stream($filename); exit; } /* * Function : quizAutoRegister */ public function quizAutoRegister($user,$key) { $user = $this->session->userdata('logged_in'); $gid = $user['gid']; $keyArray = ''; if(@$key!='') { $keyArray = unserialize(base64_decode($key)); $gid = $keyArray['gids']; } // Get Quiz Details $quizRow = $this->quiz_model->get_quiz($gid); $userParams = array('gid'=>$keyArray['gids'],'uid'=>$user['uid'],'qid'=>$quizRow['quid'],'admin_id'=>$user['admin_id'],'page_key'=>$user['page_key']); if($gid) { $this->quiz_model->quiz_registration($userParams); } } /* * Function : generate_report * */ function generate_report($quid) { $logged_in=$this->session->userdata('logged_in'); if($logged_in['su']=='0') { exit($this->lang->line('permission_denied')); } $this->load->helper('download'); //$quid=$this->input->post('quid'); $gid=$this->input->post('gid'); $logged_in=$this->session->userdata('logged_in'); $admin_id = ''; if($logged_in['su']=='1') { $admin_id = $logged_in['uid']; } $result=$this->quiz_model->generate_report($quid,$gid,$admin_id); $csvdata=$this->lang->line('s_no').",".$this->lang->line('group_name').",".$this->lang->line('quiz_name').",".$this->lang->line('user_name').", Full Name,".$this->lang->line('score_obtained').",".$this->lang->line('percentage_obtained').",".$this->lang->line('time_spent').",".$this->lang->line('status').",".$this->lang->line('email').",".$this->lang->line('system_id').",".$this->lang->line('contact_no').",".$this->lang->line('date')."\r\n"; $k=1; foreach($result as $rk => $val){ $seconds = $val['total_time']; $minutes = floor($seconds/60); $secondsleft = $seconds%60; if($minutes<10){ $minutes = "0" . $minutes; } if($secondsleft<10){ $secondsleft = "0" . $secondsleft; } $timeSpent = $minutes.':'.$secondsleft.' Min'; $endDate = date('d M Y H:i:s',$val['end_time']); $full_name = $val['first_name']." ".$val['last_name']; $csvdata.=$k.",".$val['group_name'].",".$val['quiz_name'].",".$val['email'].",".$full_name.",".$val['score_obtained'].",".ceil($val['percentage_obtained']).",".$timeSpent.",".$val['result_status'].",".$val['user_email'].",".$val['system_id'].",".$val['contact_no'].",".$endDate."\r\n"; $k++; } $quiz_file_name = $result[0]['group_name']."-".$result[0]['quiz_name']; $filename=$quiz_file_name.'-'.time().'.csv'; force_download($filename, $csvdata); } /* * Function : generate_missed_report * */ function generate_missed_report($quid) { $logged_in=$this->session->userdata('logged_in'); if($logged_in['su']=='0') { exit($this->lang->line('permission_denied')); } $this->load->helper('download'); $admin_id = ''; if($logged_in['su']=='1') { $admin_id = $logged_in['uid']; } //Get Quiz GIDS list $quizRow = $this->quiz_model->get_quiz($quid, $admin_id); if(empty($quizRow)) { setHistory('Invalid quiz id-'.$admin_id); redirect('quiz'); } $result=$this->quiz_model->generate_missed_report($quizRow); $quizName = $quizRow['quiz_name']; $csvdata=$this->lang->line('s_no').",".$this->lang->line('quiz_name').",".$this->lang->line('group_name').",".$this->lang->line('system_id').",".$this->lang->line('user_name').", Full Name,".$this->lang->line('email').",".$this->lang->line('contact_no')."\r\n"; $k=1; foreach($result as $rk => $val){ $full_name = $val['first_name']." ".$val['last_name']; $csvdata.=$k.",".$quizName.",".$val['group_name'].",".$val['system_id'].",".$val['email'].",".$full_name.",".$val['user_email'].",'".$val['contact_no']."\r\n"; $k++; } $filename=time().'.csv'; force_download($filename, $csvdata); } /* * Function: sendResultEmail * */ public function sendResultEmail($rid) { $resultArray = $this->quiz_model->quiz_result($rid); $uid = $resultArray['uid']; $quiz_name = $resultArray['quiz_name']; $userArray = $this->user_model->get_user_details($uid); //Get User Details $full_name = $userArray['first_name'].' '.$userArray['last_name']; $full_name = trim($full_name); $toemail = $userArray['email']; $subject = $full_name.', your '.$quiz_name.' result is ready'; $message = $this->resultTemplate($full_name, $resultArray); if($resultArray['quiz_type']>0 && $resultArray['show_result']>0) { $this->user_model->sendSMTPCommonEmail($toemail, $subject, $message); // Send an Result Copy //$this->user_model->sendSMTPCommonEmail('quizbyte@sharda.ac.in', $subject, $message); setHistory("Quiz result email send successfully - $subject"); } return true; } /* * Function : resultTemplate * */ public function resultTemplate($full_name, $resultArray) { $quiz_name = $resultArray['quiz_name']; $score = round($resultArray['percentage_obtained'],2); $url = base_url(); $template = ''; $template = ' <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>'.$quiz_name.' Result - Quizbyte An Ultimate Quizzing Platform</title> </head> <body> <table style="width:600px; margin:0px auto;" cellpadding="0" border="0" cellspacing="0"> <tr> <td colspan="2"> <a href="'.$url.'"><img src="https://quizbyte.sharda.ac.in/images/result-banner.png" width="100%" /></a> </td> </tr> <tr> <td colspan="2" style="font-family:Tahoma, Geneva, sans-serif; padding:20px 50px 20px 20px; border-right:1px solid #ccc;border-left:1px solid #ccc;"> <p style="font-size:16px; font-family:Tahoma, Geneva, sans-serif; color:#444;">Dear '.trim($full_name).',</p> <p style="font-size:14px; font-family:Tahoma, Geneva, sans-serif; color:#444;padding-top:20px;">Thanks for participating in the quiz <strong>'.$quiz_name.'</strong>.</p> <p style="font-size:14px; font-family:Tahoma, Geneva, sans-serif; color:#444;padding-top:5px;">Your TEST SCORE is <strong>'.$score.'%</strong></p> <p style="font-size:14px; font-family:Tahoma, Geneva, sans-serif; color:#444;padding-top:5px;">Check your Rank in the quiz by tap on Leaderboard in the quizbyte portal.</p> <br/><br/> <p style="padding:0; margin:0px;font-size:12px; font-family:Tahoma, Geneva, sans-serif; color:#444; font-style:italic;">Note: Correct answer of quiz will be available after 30 days.</p><br /> </td> </tr> <tr bgcolor="#220038"></tr> <tr bgcolor="#220038"> <td colspan="2"> <table width="100%"> <tr> <td align="center" colspan="2" valign="middle" style="padding:30px 10px 30px 10px; "> <a href="https://quizbyte.sharda.ac.in" style="color:#fff; font-size:16px; font-family:Tahoma, Geneva, sans-serif; text-decoration:none; padding:2px 0; line-height:20px;"> quizbyte.sharda.ac.in</a> </td> </tr> </table> </td> </tr> </table> </body> </html>'; return $template; } /* * Function : quizAlert * */ public function quizAlert($quid='') { $quizRecord = $this->quiz_model->getSingleRecord('savsoft_quiz','quid, gids, quiz_name,start_date,end_date, duration, maximum_questions, email_alert',array('quiz_type'=>'1', 'email_alert'=>'0','quid'=>$quid )); $k = 0; if($quizRecord['quid']>0) { $listGids = $quizRecord['gids']; $quid = $quizRecord['quid']; $quiz_name = $quizRecord['quiz_name']; // Change Email status Flag $this->quiz_model->updateinfo('savsoft_quiz', array('email_alert'=>'1') , 'quid',$quid); $recordsArray = $this->quiz_model->getQuizAlertUserlist($quid, $listGids); foreach($recordsArray as $resp){ if($resp['email']!=''){ $token = ''; $token = base64_encode(serialize(array('email'=>$resp['email'],'password'=>$resp['user_key'],'alert'=>'A-'.$quiz_name.'-'.date('Y-m-d')))); $url = base_url("login/autologin?token=".$token); $template = $this->alertEmailTemplate($resp, $quiz_name,$url,$quizRecord); $to_email = $resp['email']; $subject = "$quiz_name is available in your Quizbyte dashboard. Participate Now!!"; $this->user_model->send_email_pepipost($to_email,$subject,$template); if($k%100==0){ $this->user_model->send_email_pepipost('quizbyte@sharda.ac.in',$subject,$template); } $k++; } } } setHistory("$k Quiz alert email send successfully for $subject"); $this->session->set_flashdata('message', "<div class='alert alert-success'>Total $k Quiz alert email send successfully. </div>"); redirect("quiz"); exit(); } /* * Function : emailTemplate * * */ public function alertEmailTemplate($userDetails, $quiz_name, $url, $row){ $full_name = $userDetails["first_name"].' '.$userDetails["list_name"]; $maximum_questions = $row['maximum_questions']; $duration = $row['duration']; $start_date = date('d F Y',$row['start_date']); $end_date = date('d F Y',$row['end_date']); $start_time = date('h:i A',$row['start_date']); $end_time = date('h:i A',$row['end_date']); $message = 'If you have any questions, please let us know by sending an email to quizbyte@sharda.ac.in'; if($row['camera_req']=='1') { $message = 'Login on Quizbyte to take the test. A webcam is mandatory for tests. It is highly recommended to take a test with webcam enabled laptop or desktop.Avoid Use of mobile phone to give a quiz.'; } $template = ''; $template = ' <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Participate Now Alert - Quizbyte An Ultimate Quizzing Platform</title> </head> <body> <table style="width:600px; margin:0px auto;" cellpadding="0" border="0" cellspacing="0"> <tr> <td colspan="2"> <a href="'.$url.'"><img src="https://quizbyte.sharda.ac.in/images/participate_now.png" width="100%" /></a> </td> </tr> <tr> <td colspan="2" style="font-family:Tahoma, Geneva, sans-serif; padding:20px 50px 20px 20px; border-right:1px solid #ccc;border-left:1px solid #ccc;"> <p style="font-size:16px; font-family:Tahoma, Geneva, sans-serif; color:#444;">Dear '.trim($full_name).',</p> <p style="font-size:14px; font-family:Tahoma, Geneva, sans-serif; color:#444;padding-top:20px;">The Quiz <strong>'.$quiz_name.'</strong> is added in your quizbyte account.</p> <p style="font-size:14px; font-family:Tahoma, Geneva, sans-serif; color:#444;padding-top:5px;">Quiz will open from <strong>'.$start_date.'</strong> at <strong>'.$start_time.'</strong> and End on <strong>'.$end_date.'</strong> at <strong>'.$end_time.'</strong>.</p> <p style="font-size:14px; font-family:Tahoma, Geneva, sans-serif; color:#444;">Total No. of question: <strong>'.$maximum_questions.'</strong></p> <p style="font-size:14px; font-family:Tahoma, Geneva, sans-serif; color:#444;">Duration of Quiz: <strong>'.$duration.' Minutes</strong></p> <p style="padding:0; text-align:center;margin:0px;font-size:14px; font-family:Tahoma, Geneva, sans-serif; color:#444;"> <a href="'.$url.'" style="display:inline-block; text-decoration:none; margin:12px auto; padding:12px 30px; border-radius:30px; color:#fff; background:#ed5b7a;">Participate Now</a> </p> <br/><br/> <p style="padding:0; margin:0px;font-size:12px; font-family:Tahoma, Geneva, sans-serif; color:#444; font-style:italic;">Note: '.$message.'</p><br /> </td> </tr> <tr bgcolor="#220038"></tr> <tr bgcolor="#220038"> <td colspan="2"> <table width="100%"> <tr> <td align="center" colspan="2" valign="middle" style="padding:30px 10px 30px 10px; "> <a href="https://quizbyte.sharda.ac.in" style="color:#fff; font-size:16px; font-family:Tahoma, Geneva, sans-serif; text-decoration:none; padding:2px 0; line-height:20px;"> quizbyte.sharda.ac.in</a> </td> </tr> </table> </td> </tr> </table> </body> </html>'; return $template; } /* * Function : quizReminder */ public function quizReminder($quid) { $quizRecord = $this->quiz_model->getSingleRecord('savsoft_quiz','quid, gids, quiz_name,start_date,end_date, duration, maximum_questions, email_alert',array('quiz_type'=>'1', 'email_alert'=>'1','quid'=>$quid )); $k = 0; if($quizRecord['quid']>0) { $listGids = $quizRecord['gids']; $quid = $quizRecord['quid']; $quiz_name = $quizRecord['quiz_name']; // Change Email status Flag $this->quiz_model->updateinfo('savsoft_quiz', array('email_alert'=>'2') , 'quid',$quid); // Get Registration Count $tsql = $this->quiz_model->getAllRecords('savsoft_result','rid', array('quid'=>$quid)); $totalRegistration = count($tsql); $recordsArray = $this->quiz_model->getQuizAlertUserlist($quid, $listGids); $k = 0; foreach($recordsArray as $resp){ if($resp['email']!=''){ $token = ''; $token = base64_encode(serialize(array('email'=>$resp['email'],'password'=>$resp['user_key'],'alert'=>'R-'.$quiz_name.'-'.date('Y-m-d')))); $url = base_url("login/autologin?token=".$token); $template = $this->reminderEmailTemplate($resp, $quiz_name,$totalRegistration, $url); $to_email = $resp['email']; $subject = "Quizbyte - Last few hours left for $quiz_name. Participate Now!!"; $this->user_model->send_email_pepipost($to_email,$subject,$template); if($k%50==0){ $this->user_model->send_email_pepipost('quizbyte@sharda.ac.in',$subject,$template); } $k++; } } } setHistory("$k Reminder email alert send successfully for $subject"); $this->session->set_flashdata('message', "<div class='alert alert-success'>$k Reminder email alert send successfully.</div>"); redirect("quiz"); exit(); } /* * Function : reminderEmailTemplate * * */ function reminderEmailTemplate($userDetails, $quiz_name, $totalRegistration, $url) { $full_name = $userDetails["first_name"].' '.$userDetails["list_name"]; $template = ''; $template = ' <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Participate Now - Quizbyte An Ultimate Quizzing Platform</title> </head> <body> <table style="width:600px; margin:0px auto;" cellpadding="0" border="0" cellspacing="0"> <tr> <td colspan="2"> <a href="'.$url.'"><img src="https://quizbyte.sharda.ac.in/images/participate_now.png" width="100%" /></a> </td> </tr> <tr> <td colspan="2" style="font-family:Tahoma, Geneva, sans-serif; padding:20px 50px 20px 20px; border-right:1px solid #ccc;border-left:1px solid #ccc;"> <p style="font-size:16px; font-family:Tahoma, Geneva, sans-serif; color:#444;">Dear '.trim($full_name).',</p> <p style="font-size:14px; font-family:Tahoma, Geneva, sans-serif; color:#444;padding-top:20px;">The due time for the <strong>'.$quiz_name.'</strong> quiz /assignment will expire in a few hours.</p> <p style="font-size:14px; font-family:Tahoma, Geneva, sans-serif; color:#444;padding-top:5px;">If you want to appear/ submit it now, click on the Participate Now button given below.</p> <p style="padding:0; text-align:center;margin:0px;font-size:14px; font-family:Tahoma, Geneva, sans-serif; color:#444;"> <a href="'.$url.'" style="display:inline-block; text-decoration:none; margin:12px auto; padding:12px 30px; border-radius:30px; color:#fff; background:#ed5b7a;">Participate Now</a><br /> <small>('.$totalRegistration.'+ already registered)</small </p> <br/><br/> <p style="padding:0; margin:0px;font-size:12px; font-family:Tahoma, Geneva, sans-serif; color:#444; font-style:italic;">Note: If you have any questions, please let us know by sending an email to quizbyte@sharda.ac.in</p><br /> </td> </tr> <tr bgcolor="#220038"></tr> <tr bgcolor="#220038"> <td colspan="2"> <table width="100%"> <tr> <td align="center" colspan="2" valign="middle" style="padding:30px 10px 30px 10px; "> <a href="https://quizbyte.sharda.ac.in" style="color:#fff; font-size:16px; font-family:Tahoma, Geneva, sans-serif; text-decoration:none; padding:2px 0; line-height:20px;"> quizbyte.sharda.ac.in</a> </td> </tr> </table> </td> </tr> </table> </body> </html>'; return $template; } /* * Function : getActiveQdetails * */ public function getActiveQdetails() { $quid=$this->input->post('quid'); $resp = ''; if($quid>0){ $questionRow = $this->quiz_model->get_single_questions($quid); if($questionRow['question']) { echo $questionRow['question']; } else { echo 'Invalid Request'; setHistory("Sorry!!Invalid Request for $quid"); } } exit(); } }