sch_setting_detail = $this->setting_model->getSetting(); } public function read($id) { if (!$this->rbac->hasPrivilege('question_bank', 'can_view')) { access_denied(); } $this->session->set_userdata('top_menu', 'Online_Examinations'); $this->session->set_userdata('sub_menu', 'Online_Examinations/question'); $question = $this->question_model->get($id); $data['question'] = $question; $data['question_type'] = $this->config->item('question_type'); $data['question_level'] = $this->config->item('question_level'); $data['question_true_false'] = $this->config->item('question_true_false'); $questionOpt = $this->customlib->getQuesOption(); $data['questionOpt'] = $questionOpt; $this->load->view('layout/header', $data); $this->load->view('admin/question/read', $data); $this->load->view('layout/footer', $data); } public function index($offset = 0) { if (!$this->rbac->hasPrivilege('question_bank', 'can_view')) { access_denied(); } $this->session->set_userdata('top_menu', 'Online_Examinations'); $this->session->set_userdata('sub_menu', 'Online_Examinations/question'); $data = array(); $class = $this->class_model->get(); $data['classlist'] = $class; $subjectlist = $this->subject_model->get(); $data['subjectlist'] = $subjectlist; $data['question_type'] = $this->config->item('question_type'); $data['question_level'] = $this->config->item('question_level'); $questionList = $this->question_model->get(); $this->load->view('layout/header', $data); $this->load->view('admin/question/question', $data); $this->load->view('layout/footer', $data); } public function getQuestionByID() { $id = $this->input->post('recordid'); $question_result = $this->question_model->get($id); echo json_encode(array('status' => 1, 'result' => $question_result)); } public function exportformat() { $this->load->helper('download'); $filepath = "./backend/import/import_question_sample_file.csv"; $data = file_get_contents($filepath); $name = 'import_question_sample_file.csv'; force_download($name, $data); } public function bulkdelete() { $question_array=$this->input->post('recordid'); $question_result = $this->question_model->bulkdelete($question_array); echo json_encode(array('status' => 1, 'message' => $this->lang->line('delete_message'))); } public function uploadfile() { $this->form_validation->set_rules('file', $this->lang->line('image'), 'callback_handle_upload'); $this->form_validation->set_rules('class_id', $this->lang->line('class'), 'trim|required|xss_clean'); $this->form_validation->set_rules('section_id', $this->lang->line('section'), 'trim|required|xss_clean'); $this->form_validation->set_rules('subject_id', $this->lang->line('subject'), 'trim|required|xss_clean'); if ($this->form_validation->run() == false) { $data = array( 'subject_id' => form_error('subject_id'), 'class_id' => form_error('class_id'), 'section_id' => form_error('section_id'), 'file' => form_error('file'), ); $array = array('status' => 0, 'error' => $data); echo json_encode($array); } else { $insert_array = array(); //==================== if (isset($_FILES["file"]) && !empty($_FILES['file']['name'])) { $fileName = $_FILES["file"]["tmp_name"]; if (isset($_FILES["file"]) && !empty($_FILES['file']['name']) && $_FILES["file"]["size"] > 0) { $file = fopen($fileName, "r"); $flag = true; while (($column = fgetcsv($file, 10000, ",")) !== false) { if ($flag) { $flag = false; continue; } if (trim($column['0']) != "" && trim($column['1']) != "" && trim($column['2']) != "") { $insert_array[] = array( 'staff_id' => $this->customlib->getStaffID(), 'subject_id' => $this->input->post('subject_id'), 'class_id' => $this->input->post('class_id'), 'section_id' => $this->input->post('section_id'), 'question_type' => trim($column['0']), 'level' => trim($column['1']), 'question' => trim($column['2']), 'opt_a' => trim($column['3']), 'opt_b' => trim($column['4']), 'opt_c' => trim($column['5']), 'opt_d' => trim($column['6']), 'opt_e' => trim($column['7']), 'correct' => trim($column['8']), ); } } } if (!empty($insert_array)) { $this->question_model->add_question_bulk($insert_array); } $array = array('status' => '1', 'error' => '', 'message' => $this->lang->line('success_message')); echo json_encode($array); } //============= } } public function handle_upload() { $image_validate = $this->config->item('csv_validate'); if (isset($_FILES["file"]) && !empty($_FILES['file']['name']) && $_FILES["file"]["size"] > 0) { $file_type = $_FILES["file"]['type']; $file_size = $_FILES["file"]["size"]; $file_name = $_FILES["file"]["name"]; $allowed_extension = $image_validate['allowed_extension']; $ext = pathinfo($file_name, PATHINFO_EXTENSION); $allowed_mime_type = $image_validate['allowed_mime_type']; $finfo = finfo_open(FILEINFO_MIME_TYPE); $mtype = finfo_file($finfo, $_FILES['file']['tmp_name']); finfo_close($finfo); if (!in_array($mtype, $allowed_mime_type)) { $this->form_validation->set_message('handle_upload', $this->lang->line('file_type_not_allowed')); return false; } if (!in_array($ext, $allowed_extension) || !in_array($file_type, $allowed_mime_type)) { $this->form_validation->set_message('handle_upload', $this->lang->line('extension_not_allowed')); return false; } if ($file_size > $image_validate['upload_size']) { $this->form_validation->set_message('handle_upload', $this->lang->line('file_size_shoud_be_less_than') . number_format($image_validate['upload_size'] / 1048576, 2) . " MB"); return false; } return true; } else { $this->form_validation->set_message('handle_upload', $this->lang->line('please_choose_a_file_to_upload')); return false; } } public function add() { if (!$this->rbac->hasPrivilege('question_bank', 'can_add')) { access_denied(); } $this->form_validation->set_rules('subject_id', $this->lang->line('subject'), 'trim|required|xss_clean'); $this->form_validation->set_rules('question', $this->lang->line('question'), 'trim|required'); $this->form_validation->set_rules('question_type', $this->lang->line('question_type'), 'trim|required|xss_clean'); $this->form_validation->set_rules('question_level', $this->lang->line('question_level'), 'trim|required|xss_clean'); $this->form_validation->set_rules('class_id', $this->lang->line('class'), 'trim|required|xss_clean'); if ($this->input->post('question_type') == "singlechoice") { $this->form_validation->set_rules('opt_a', $this->lang->line('option_A'), 'trim|required'); $this->form_validation->set_rules('opt_b', $this->lang->line('option_B'), 'trim|required'); $this->form_validation->set_rules('correct', $this->lang->line('answer'), 'trim|required'); } elseif ($this->input->post('question_type') == "true_false") { $this->form_validation->set_rules('correct_true_false', $this->lang->line('answer'), 'trim|required|xss_clean'); } elseif ($this->input->post('question_type') == "multichoice") { $this->form_validation->set_rules('opt_a', $this->lang->line('option_A'), 'trim|required'); $this->form_validation->set_rules('opt_b', $this->lang->line('option_B'), 'trim|required'); $this->form_validation->set_rules('ans[]', $this->lang->line('answer'), 'trim|required|xss_clean'); } if ($this->form_validation->run() == false) { $msg = array( 'subject_id' => form_error('subject_id'), 'question' => form_error('question'), 'question_type' => form_error('question_type'), 'question_level' => form_error('question_level'), 'class_id' => form_error('class_id'), ); if ($this->input->post('question_type') == "singlechoice") { $msg['opt_a'] = form_error('opt_a'); $msg['opt_b'] = form_error('opt_b'); $msg['correct'] = form_error('correct'); } elseif ($this->input->post('question_type') == "true_false") { $msg['correct_true_false'] = form_error('correct_true_false'); } elseif ($this->input->post('question_type') == "multichoice") { $msg['opt_a'] = form_error('opt_a'); $msg['opt_b'] = form_error('opt_b'); $msg['ans'] = form_error('ans[]'); } $array = array('status' => 0, 'error' => $msg, 'message' => ''); } else { $insert_data = array( 'subject_id' => $this->input->post('subject_id'), 'question' => $this->input->post('question'), 'question_type' => $this->input->post('question_type'), 'level' => $this->input->post('question_level'), 'class_id' => $this->input->post('class_id'), 'staff_id' => $this->customlib->getStaffID(), ); $section_id = $this->input->post('section_id'); if (isset($section_id) && $section_id != "") { $insert_data['section_id'] = $this->input->post('section_id'); } if ($this->input->post('question_type') == "singlechoice") { $insert_data['opt_a'] = $this->input->post('opt_a'); $insert_data['opt_b'] = $this->input->post('opt_b'); $insert_data['opt_c'] = $this->input->post('opt_c'); $insert_data['opt_d'] = $this->input->post('opt_d'); $insert_data['opt_e'] = $this->input->post('opt_e'); $insert_data['correct'] = $this->input->post('correct'); } elseif ($this->input->post('question_type') == "true_false") { $insert_data['opt_a'] = ""; $insert_data['opt_b'] = ""; $insert_data['opt_c'] = ""; $insert_data['opt_d'] = ""; $insert_data['opt_e'] = ""; $insert_data['correct'] = $this->input->post('correct_true_false'); } elseif ($this->input->post('question_type') == "multichoice") { $insert_data['opt_a'] = $this->input->post('opt_a'); $insert_data['opt_b'] = $this->input->post('opt_b'); $insert_data['opt_c'] = $this->input->post('opt_c'); $insert_data['opt_d'] = $this->input->post('opt_d'); $insert_data['opt_e'] = $this->input->post('opt_e'); $insert_data['correct'] = json_encode($this->input->post('ans')); } elseif ($this->input->post('question_type') == "descriptive") { $insert_data['opt_a'] = ""; $insert_data['opt_b'] = ""; $insert_data['opt_c'] = ""; $insert_data['opt_d'] = ""; $insert_data['opt_e'] = ""; $insert_data['correct'] = ""; } $id = $this->input->post('recordid'); if ($id != 0) { $insert_data['id'] = $id; } $this->question_model->add($insert_data); $array = array('status' => 1, 'error' => '', 'message' => $this->lang->line('success_message')); } echo json_encode($array); } public function getRecord($id) { $result = $this->question_model->get_result($id); $result['options'] = $this->question_model->get_option($id); $result['ans'] = $this->question_model->get_answer($id); echo json_encode($result); } public function addform() { $data = array(); $data['classList'] = $this->class_model->get(); $subject_result = $this->subject_model->get(); $data['subjectlist'] = $subject_result; $data['question_true_false'] = $this->config->item('question_true_false'); $data['question_type'] = $this->config->item('question_type'); $data['question_level'] = $this->config->item('question_level'); $questionOpt = $this->customlib->getQuesOption(); $data['questionOpt'] = $questionOpt; $data['recordid'] = $this->input->post('recordid'); $page = $this->load->view('admin/question/_addform', $data, true); echo json_encode(array('status' => 1, 'page' => $page)); } public function editform() { $data = array(); $data['recordid'] = $this->input->post('recordid'); $question_result = $this->question_model->get($data['recordid']); $data['question_result'] = $question_result; $data['classList'] = $this->class_model->get(); $data['sectionList'] = $this->section_model->getClassBySection($question_result->class_id); $subject_result = $this->subject_model->get(); $data['subjectlist'] = $subject_result; $data['question_true_false'] = $this->config->item('question_true_false'); $data['question_type'] = $this->config->item('question_type'); $data['question_level'] = $this->config->item('question_level'); $questionOpt = $this->customlib->getQuesOption(); $data['questionOpt'] = $questionOpt; $page = $this->load->view('admin/question/_editform', $data, true); echo json_encode(array('status' => 1, 'page' => $page)); } public function delete($id) { if (!$this->rbac->hasPrivilege('question_bank', 'can_delete')) { access_denied(); } $this->question_model->remove($id); redirect('admin/question', 'refresh'); } public function getimages() { $keyword = ""; $page = $this->input->post('page'); $keyword = $this->input->post('query'); $per_page_record = 12; if ($page > 1) { $start = (($page - 1) * $per_page_record); $page = $page; } else { $start = 0; } $file_type = "Image"; $result = $this->cms_media_model->fetch_details($per_page_record, $start, $keyword, $file_type); $result_count = $this->cms_media_model->count_all($keyword, $file_type); $data['result'] = $result; $data['result_count'] = $result_count; $data['pagination'] = $this->getpagination($result_count, $per_page_record, $page); $page = $this->load->view('admin/question/_getimages', $data, true); echo json_encode(array('page' => $page, 'count' => $data['result_count'], 'pagination' => $data['pagination'])); } public function getpagination($total_data, $limit, $page) { $output = ""; $output .= '