GIF89a;
Server IP : 172.26.0.195 / Your IP : 3.149.251.26 Web Server : Apache System : Linux 43-205-77-33.cprapid.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : jnclnmuac ( 1026) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/jnclnmuac/public_html/web/../css/../cas/application/controllers/admin/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?php /** * Controller For Handling All Requests Related To Quizzes & Assignments * * @author Ankit Srivastava */ defined('BASEPATH') OR exit('No direct script access allowed'); class TasksAndQuizzes extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('admin/TaskAndQuizManagement'); $this->load->model('admin/CourseManagement'); $this->load->model('admin/SessionManagement'); $this->load->model('admin/SubjectManagement'); $this->load->model('admin/StudentManagement'); } public function topics() { if ($this->sessionvalidator->isLoggedIn() && $this->sessionvalidator->isAccessGranted()) { $viewData["topics"] = $this->TaskAndQuizManagement->getAllSubjectTopics()->result(); $this->load->view("admin/quizzes/topics", $viewData); } else { redirect("admin/"); } } public function createTopic() { if ($this->sessionvalidator->isLoggedIn()) { $viewData['courses'] = $this->CourseManagement->getActiveAndNonDeletedCourses()->result(); $this->load->view('admin/quizzes/createTopic', $viewData); } else { redirect("admin/"); } } public function saveNewTopic() { if ($this->sessionvalidator->isLoggedIn()) { $this->form_validation->set_rules('subjectCourse', 'Course', 'trim|required', array('required' => 'Please Select A Course.')); $this->form_validation->set_rules('subject', 'Subject', 'trim|required', array('required' => 'Please Select Any Subject.')); $this->form_validation->set_rules('subjectTopic', 'Subject Topic', 'trim|required', array('required' => 'Subject Topic Can Not Be Blank.')); $queryByTopicName = $this->TaskAndQuizManagement->getTopicInfoByName(trim($this->input->post('subjectTopic'))); $topicInfoByName = $queryByTopicName->result(); if ($this->form_validation->run() == FALSE) { $this->createTopic(); } else if (sizeof($topicInfoByName)) { $this->session->set_flashdata('errorMessage', "A Topic With This Name (" . trim($this->input->post('subjectTopic')) . ") Already Exits. Please Choose A Different Topic Name."); $this->createTopic(); } else { $newTopicInfo = array( 'stm_name' => addslashes(trim($this->input->post('subjectTopic'))), 'stm_description' => addslashes(trim($this->input->post('subjectTopicDesc'))), 'sm_id' => $this->input->post('subject'), 'stm_added_on' => date("Y-m-d H:i:s"), 'stm_added_by' => $this->session->userdata("adminData")["smember_id"], 'stm_updated_on' => date("Y-m-d H:i:s"), 'stm_updated_by' => $this->session->userdata("adminData")["smember_id"] ); if ($this->TaskAndQuizManagement->createNewTopic($newTopicInfo)) { $this->session->set_flashdata('successMessage', 'Topic Created Successfully.'); redirect("admin/TasksAndQuizzes/topics"); } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Creating Topic. Try Later.'); redirect("admin/TasksAndQuizzes/topics"); } } } else { redirect("admin/"); } } public function saveNewTopicAndReturnForDropDown() { if ($this->sessionvalidator->isLoggedIn()) { if (trim($this->input->post('subjectTopicModal')) == "") { $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'st_id' => -1, 'st_name' => "" ); echo json_encode($responseData); } else if (sizeof($this->TaskAndQuizManagement->getTopicInfoByName(trim($this->input->post('subjectTopicModal')))->result())) { $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'stm_id' => 0, 'stm_name' => "" ); echo json_encode($responseData); } else { $newTopicInfo = array( 'sm_id' => $this->input->post('subjectModal'), 'stm_name' => addslashes(trim($this->input->post('subjectTopicModal'))), 'stm_description' => addslashes(trim($this->input->post('subjectTopicModalDesc'))), 'stm_added_on' => date("Y-m-d H:i:s"), 'stm_added_by' => $this->session->userdata("adminData")["smember_id"], 'stm_updated_on' => date("Y-m-d H:i:s"), 'stm_updated_by' => $this->session->userdata("adminData")["smember_id"] ); $stm_id = $this->TaskAndQuizManagement->createNewTopic($newTopicInfo); $topic_info = $this->TaskAndQuizManagement->getTopicInfoBy($stm_id)->result()[0]; $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'stm_id' => $topic_info->stm_id, 'stm_name' => stripslashes($topic_info->stm_name) ); echo json_encode($responseData); } } else { redirect("admin/"); } } public function editTopic($topic_id) { if ($this->sessionvalidator->isLoggedIn()) { $viewData['courses'] = $this->CourseManagement->getActiveAndNonDeletedCourses()->result(); $viewData['topicInfo'] = $this->TaskAndQuizManagement->getTopicInfoBy($topic_id)->result()[0]; $this->load->view('admin/quizzes/editTopic', $viewData); } else { redirect("admin/"); } } public function updateTopic() { if ($this->sessionvalidator->isLoggedIn()) { $stm_id = $this->input->post('stm_id'); $this->form_validation->set_rules('subjectCourse', 'Course', 'trim|required', array('required' => 'Please Select A Course.')); $this->form_validation->set_rules('subject', 'Subject', 'trim|required', array('required' => 'Please Select Any Subject.')); $this->form_validation->set_rules('subjectTopic', 'Subject Topic', 'trim|required', array('required' => 'Subject Topic Can Not Be Blank.')); if ($this->form_validation->run() == FALSE) { $this->editTopic($stm_id); } else if (!$this->TaskAndQuizManagement->isTopicNameSafeUpdate($stm_id, trim($this->input->post('subjectTopic')))) { $this->session->set_flashdata('errorMessage', "A Topic With This Name (" . trim($this->input->post('subjectTopic')) . ") Already Exits. Please Choose A Different Name."); $this->editTopic($stm_id); } else { $topicUpdateInfo = array( 'stm_id' => $stm_id, 'stm_name' => addslashes(trim($this->input->post('subjectTopic'))), 'stm_description' => addslashes(trim($this->input->post('subjectTopicDesc'))), 'sm_id' => $this->input->post('subject'), 'stm_updated_on' => date("Y-m-d H:i:s"), 'stm_updated_by' => $this->session->userdata("adminData")["smember_id"] ); if ($this->TaskAndQuizManagement->updateTopicInfo($topicUpdateInfo)) { $this->session->set_flashdata('successMessage', 'Topic Updated Successfully.'); redirect("admin/TasksAndQuizzes/topics"); } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Updating Topic. Try Later.'); redirect("admin/TasksAndQuizzes/topics"); } } } else { redirect("admin/"); } } public function toggleTopicStatus($topic_id, $toUpdateStatus) { if ($this->sessionvalidator->isLoggedIn()) { $topicUpdateData = array( 'stm_id' => $topic_id, 'stm_updated_on' => date("Y-m-d H:i:s"), 'stm_updated_by' => $this->session->userdata("adminData")["smember_id"], 'stm_active_status' => $toUpdateStatus ); if ($this->TaskAndQuizManagement->updateTopicInfo($topicUpdateData)) { $this->session->set_flashdata('successMessage', 'Topic Status Updated Successfully.'); redirect("admin/TasksAndQuizzes/topics"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Updating Topic Status. Try Later.'); redirect("admin/TasksAndQuizzes/topics"); } } else { redirect("admin/"); } } public function deleteTopic($topic_id) { if ($this->sessionvalidator->isLoggedIn()) { $topicDeleteData = array( 'stm_id' => $topic_id, 'stm_updated_on' => date("Y-m-d H:i:s"), 'stm_updated_by' => $this->session->userdata("adminData")["smember_id"], 'stm_delete_status' => 'T' ); if ($this->TaskAndQuizManagement->updateTopicInfo($topicDeleteData)) { $this->session->set_flashdata('successMessage', 'Topic Deleted Successfully.'); redirect("admin/TasksAndQuizzes/topics"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Deleting Topic. Try Later.'); redirect("admin/TasksAndQuizzes/topics"); } } else { redirect("admin/"); } } public function undoDeleteTopic($topic_id) { if ($this->sessionvalidator->isLoggedIn()) { $topicDeleteData = array( 'stm_id' => $topic_id, 'stm_updated_on' => date("Y-m-d H:i:s"), 'stm_updated_by' => $this->session->userdata("adminData")["smember_id"], 'stm_delete_status' => 'F' ); if ($this->TaskAndQuizManagement->updateTopicInfo($topicDeleteData)) { $this->session->set_flashdata('successMessage', 'Topic Recovered Successfully.'); redirect("admin/TasksAndQuizzes/topics"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Recovering Topic. Try Later.'); redirect("admin/TasksAndQuizzes/topics"); } } else { redirect("admin/"); } } public function getTopicsForDropdownBySubject() { $subject_id = $_POST['subject_id']; $query = $this->TaskAndQuizManagement->getAllNonDeletedActiveSubjectTopicsBy($subject_id); $topics = $query->result(); if (sizeof($topics)) { $options = ""; for ($i = 0; $i < (sizeof($topics)); $i++) { $options .= "<option value=" . $topics[$i]->stm_id . ">" . stripslashes($topics[$i]->stm_name) . "</option>"; } $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'topics' => $options ); } else { $options = "<option value='' disabled>No Topics Available</option>"; $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'topics' => $options ); } echo json_encode($responseData); } /* Request Handlers For Subjective Questions */ public function subjectiveQuestions() { if ($this->sessionvalidator->isLoggedIn() && $this->sessionvalidator->isAccessGranted()) { $viewData['subjectiveGenQuestion'] = $this->TaskAndQuizManagement->getAllGeneralQuestionsOfUser($this->session->userdata("adminData")['smember_id'], "S")->result(); $viewData['subjectiveCompQuestion'] = $this->TaskAndQuizManagement->getAllGroupQuestionsOfUser($this->session->userdata("adminData")['smember_id'], "S")->result(); if ($this->session->flashdata('genQuestionTab') == NULL && $this->session->flashdata('compQuestionTab') == NULL) { $this->session->set_flashdata('genQuestionTab', 'active'); } $this->load->view("admin/quizzes/subjectiveQuestions", $viewData); } else { redirect("admin/"); } } public function createSubjectiveGeneralQuestions() { if ($this->sessionvalidator->isLoggedIn()) { $viewData['courses'] = $this->CourseManagement->getActiveAndNonDeletedCourses()->result(); $this->load->view('admin/quizzes/addSubjectiveGeneralQues', $viewData); } else { redirect("admin/"); } } public function saveNewSubjectiveGeneralQuestion() { if ($this->sessionvalidator->isLoggedIn()) { $this->form_validation->set_rules('subjectCourse', 'Course', 'trim|required', array('required' => 'Please Select Any Course.')); $this->form_validation->set_rules('subject', 'Subject', 'trim|required', array('required' => 'Please Select Any Subject.')); $this->form_validation->set_rules('subjectTopic', 'Subject Topic', 'trim|required', array('required' => 'Please Select Any Topic.')); if ($this->form_validation->run() == FALSE) { $this->createSubjectiveGeneralQuestions(); } else { $questions = $this->input->post("questions"); $questionMarks = $this->input->post("marks"); $qestionsInfo = array(); if (sizeof($questions) == 1) { if (!empty($_FILES['imageFile']['name'])) { $genSubQuesImg['upload_path'] = './assets/admin/uploads/questionBank/'; $genSubQuesImg['allowed_types'] = 'jpeg|jpg|png'; $genSubQuesImg['max_size'] = '500'; $genSubQuesImg['file_ext_tolower'] = TRUE; $genSubQuesImg['encrypt_name'] = TRUE; $this->load->library('upload', $genSubQuesImg); if (!$this->upload->do_upload('imageFile')) { $this->session->set_flashdata('errorMessage', "Question Image File Can Not Be Uploaded As It Violates Upload File Criteria. File Size 500 KB Max. & Allowed Extension: Only *.png,*.jpg,*.jpeg."); $this->createSubjectiveGeneralQuestions(); } else { array_push($qestionsInfo, array( 'qb_question' => addslashes($questions[0]), 'qb_marks' => addslashes($questionMarks[0]), 'qb_image' => "/assets/admin/uploads/questionBank/" . $this->upload->data()['file_name'], 'stm_id' => trim($this->input->post('subjectTopic')), 'qb_ques_type_flag' => "S", 'qb_added_on' => date("Y-m-d H:i:s"), 'qb_added_by' => $this->session->userdata("adminData")["smember_id"], 'qb_updated_on' => date("Y-m-d H:i:s"), 'qb_updated_by' => $this->session->userdata("adminData")["smember_id"] )); } } else { array_push($qestionsInfo, array( 'qb_question' => addslashes($questions[0]), 'qb_marks' => addslashes($questionMarks[0]), 'stm_id' => trim($this->input->post('subjectTopic')), 'qb_ques_type_flag' => "S", 'qb_added_on' => date("Y-m-d H:i:s"), 'qb_added_by' => $this->session->userdata("adminData")["smember_id"], 'qb_updated_on' => date("Y-m-d H:i:s"), 'qb_updated_by' => $this->session->userdata("adminData")["smember_id"] )); } } else { for ($i = 0; $i < sizeof($questions); $i++) { array_push($qestionsInfo, array( 'qb_question' => addslashes($questions[$i]), 'qb_marks' => addslashes($questionMarks[$i]), 'stm_id' => trim($this->input->post('subjectTopic')), 'qb_ques_type_flag' => "S", 'qb_added_on' => date("Y-m-d H:i:s"), 'qb_added_by' => $this->session->userdata("adminData")["smember_id"], 'qb_updated_on' => date("Y-m-d H:i:s"), 'qb_updated_by' => $this->session->userdata("adminData")["smember_id"] )); } } $this->session->set_flashdata('genQuestionTab', 'active'); $this->session->set_flashdata('compQuestionTab', ''); if ($this->TaskAndQuizManagement->createNewGeneralQuestionsMulti($qestionsInfo)) { $this->session->set_flashdata('successMessage', 'Subjective General Questions Saved Successfully.'); redirect("admin/TasksAndQuizzes/subjectiveQuestions"); } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Saving Subjective General Questiono. Try Later.'); redirect("admin/TasksAndQuizzes/subjectiveQuestions"); } } } else { redirect("admin/"); } } public function editGeneralQuestions($qb_id) { if ($this->sessionvalidator->isLoggedIn()) { $viewData['courses'] = $this->CourseManagement->getActiveAndNonDeletedCourses()->result(); $viewData['questionInfo'] = $this->TaskAndQuizManagement->getGeneralQuestionInfoBy($qb_id)->result()[0]; $this->load->view('admin/quizzes/editSubjectiveGeneralQues', $viewData); } else { redirect("admin/"); } } public function updateSubjectiveGeneralQuestion() { if ($this->sessionvalidator->isLoggedIn()) { $qb_id = $this->input->post("qb_id"); $this->form_validation->set_rules('subjectCourse', 'Course', 'trim|required', array('required' => 'Please Select Any Course.')); $this->form_validation->set_rules('subject', 'Subject', 'trim|required', array('required' => 'Please Select Any Subject.')); $this->form_validation->set_rules('subjectTopic', 'Subject Topic', 'trim|required', array('required' => 'Please Select Any Topic.')); $questionImageFileName = ""; if (trim($this->input->post('qb_image')) != "") { $questionImageFileName = substr($this->input->post('qb_image'), strripos($this->input->post('qb_image'), "/") + 1); } if ($this->form_validation->run() == FALSE) { $this->editSubjectiveGeneralQuestions($qb_id); } else { $qestionsInfo = array(); if (!empty($_FILES['imageFile']['name'])) { $genSubQuesImg['upload_path'] = './assets/admin/uploads/questionBank/'; $genSubQuesImg['allowed_types'] = 'jpeg|jpg|png'; $genSubQuesImg['max_size'] = '500'; $genSubQuesImg['file_ext_tolower'] = TRUE; $genSubQuesImg['encrypt_name'] = TRUE; $this->load->library('upload', $genSubQuesImg); if (!$this->upload->do_upload('imageFile')) { $this->session->set_flashdata('errorMessage', "Question Image File Can Not Be Uploaded As It Violates Upload File Criteria. File Size 500 KB Max. & Allowed Extension: Only *.png,*.jpg,*.jpeg."); $this->createSubjectiveGeneralQuestions(); } else { $qestionsInfo = array( 'qb_id' => $qb_id, 'qb_question' => addslashes(trim($this->input->post("question"))), 'qb_marks' => addslashes(trim($this->input->post("mark"))), 'qb_image' => "/assets/admin/uploads/questionBank/" . $this->upload->data()['file_name'], 'stm_id' => trim($this->input->post('subjectTopic')), 'qb_updated_on' => date("Y-m-d H:i:s"), 'qb_updated_by' => $this->session->userdata("adminData")["smember_id"] ); } } else { if ($this->input->post("removeImage") != NULL) { $qestionsInfo = array( 'qb_id' => $qb_id, 'qb_question' => addslashes(trim($this->input->post("question"))), 'qb_image' => NULL, 'qb_marks' => addslashes(trim($this->input->post("mark"))), 'stm_id' => trim($this->input->post('subjectTopic')), 'qb_updated_on' => date("Y-m-d H:i:s"), 'qb_updated_by' => $this->session->userdata("adminData")["smember_id"] ); } else { $qestionsInfo = array( 'qb_id' => $qb_id, 'qb_question' => addslashes(trim($this->input->post("question"))), 'qb_marks' => addslashes(trim($this->input->post("mark"))), 'stm_id' => trim($this->input->post('subjectTopic')), 'qb_updated_on' => date("Y-m-d H:i:s"), 'qb_updated_by' => $this->session->userdata("adminData")["smember_id"] ); } } $this->session->set_flashdata('genQuestionTab', 'active'); $this->session->set_flashdata('compQuestionTab', ''); if ($this->TaskAndQuizManagement->updateGenralQuestionInfo($qestionsInfo)) { if (($questionImageFileName != "" && (!empty($_FILES['imageFile']['name'])) ) || ($this->input->post("removeImage") != NULL)) { if (file_exists("./assets/admin/uploads/questionBank/" . $questionImageFileName)) { unlink("./assets/admin/uploads/questionBank/" . $questionImageFileName); } } $this->session->set_flashdata('successMessage', 'Subjective General Questions Updated Successfully.'); redirect("admin/TasksAndQuizzes/subjectiveQuestions"); } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Updating Subjective General Questiono. Try Later.'); redirect("admin/TasksAndQuizzes/subjectiveQuestions"); } } } else { redirect("admin/"); } } public function deleteGeneralQuestion($qb_id, $question_type) { if ($this->sessionvalidator->isLoggedIn()) { $questionDeleteData = array( 'qb_id' => $qb_id, 'qb_updated_on' => date("Y-m-d H:i:s"), 'qb_updated_by' => $this->session->userdata("adminData")["smember_id"], 'qb_delete_status' => 'T' ); $this->session->set_flashdata('genQuestionTab', 'active'); $this->session->set_flashdata('compQuestionTab', ''); if ($this->TaskAndQuizManagement->updateGenralQuestionInfo($questionDeleteData)) { $this->session->set_flashdata('successMessage', 'Question Deleted Successfully.'); if ($question_type == "S") { redirect("admin/TasksAndQuizzes/subjectiveQuestions"); } else { redirect("admin/TasksAndQuizzes/objectiveQuestions"); } } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Deleting Question. Try Later.'); if ($question_type == "S") { redirect("admin/TasksAndQuizzes/subjectiveQuestions"); } else { redirect("admin/TasksAndQuizzes/objectiveQuestions"); } } } else { redirect("admin/"); } } public function getSubjectiveGeneralQuestionsBySubjectAndTopic() { $subjectId = $_POST['subject_id']; $topicIds = ($_POST['topic_id'] == "") ? array() : $_POST['topic_id']; $smemeber_id = $_POST['smemeber_id']; $gen_question_info = $this->TaskAndQuizManagement->getAllGeneralQuestionsOfUser($smemeber_id, "S", $topicIds, $subjectId)->result(); $genQuestionList = array(); if (sizeof($gen_question_info)) { for ($i = 0; $i < sizeof($gen_question_info); $i++) { $thisQuestionInfo = array( 'sqb_id' => $gen_question_info[$i]->qb_id, 'sqb_question' => stripslashes($gen_question_info[$i]->qb_question), 'sqb_image' => ($gen_question_info[$i]->qb_image == NULL || $gen_question_info[$i]->qb_image == "") ? "" : "<br><img src='" . base_url($gen_question_info[$i]->qb_image) . "' width='50%' height='50%'/>", 'sqb_marks' => stripslashes($gen_question_info[$i]->qb_marks) ); array_push($genQuestionList, $thisQuestionInfo); } $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'available_question' => sizeof($gen_question_info), 'question_list' => $genQuestionList, 'message' => 'General Questions Available' ); } else { $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'available_question' => 0, 'question_list' => $genQuestionList, 'message' => 'No General Questions Available Under Selected Subject/Topic.' ); } echo json_encode($responseData); } /* Request Handlers For Subjective Comprehensive Questions */ public function createSubjectiveComprehensiveQuestions() { if ($this->sessionvalidator->isLoggedIn()) { $viewData['courses'] = $this->CourseManagement->getActiveAndNonDeletedCourses()->result(); $this->load->view('admin/quizzes/addSubjectiveComprehensiveQues', $viewData); } else { redirect("admin/"); } } public function saveNewSubjectiveGroupQuestion() { if ($this->sessionvalidator->isLoggedIn()) { $this->form_validation->set_rules('subjectCourse', 'Course', 'trim|required', array('required' => 'Please Select Any Course.')); $this->form_validation->set_rules('subject', 'Subject', 'trim|required', array('required' => 'Please Select Any Subject.')); $this->form_validation->set_rules('subjectTopic', 'Subject Topic', 'trim|required', array('required' => 'Please Select Any Topic.')); $this->form_validation->set_rules('questionDesc', 'Question Description', 'trim|required|max_length[1000]', array('required' => 'Question Description Can Not Be Blank.')); if ($this->form_validation->run() == FALSE) { $this->createSubjectiveComprehensiveQuestions(); } else { $subQuestions = $this->input->post("questions"); $subQuestionMarks = $this->input->post("marks"); $newSubjectiveGroupQuestionInfo = array(); if (!empty($_FILES['imageFile']['name'])) { $comphSubQuesImg['upload_path'] = './assets/admin/uploads/questionBank/'; $comphSubQuesImg['allowed_types'] = 'jpeg|jpg|png'; $comphSubQuesImg['max_size'] = '500'; $comphSubQuesImg['file_ext_tolower'] = TRUE; $comphSubQuesImg['encrypt_name'] = TRUE; $this->load->library('upload', $comphSubQuesImg); if (!$this->upload->do_upload('imageFile')) { $this->session->set_flashdata('errorMessage', "Question Image File Can Not Be Uploaded As It Violates Upload File Criteria. File Size 500 KB Max. & Allowed Extension: Only *.png,*.jpg,*.jpeg."); $this->createSubjectiveComprehensiveQuestions(); } else { $newSubjectiveGroupQuestionInfo = array( 'qg_question' => addslashes(trim($this->input->post('questionDesc'))), 'qg_image' => "/assets/admin/uploads/questionBank/" . $this->upload->data()['file_name'], 'qg_marks' => $this->input->post('totalMarks'), 'qg_added_on' => date("Y-m-d H:i:s"), 'qg_added_by' => $this->session->userdata("adminData")["smember_id"], 'qg_updated_on' => date("Y-m-d H:i:s"), 'qg_updated_by' => $this->session->userdata("adminData")["smember_id"] ); } } else { $newSubjectiveGroupQuestionInfo = array( 'qg_question' => addslashes(trim($this->input->post('questionDesc'))), 'qg_marks' => $this->input->post('totalMarks'), 'qg_added_on' => date("Y-m-d H:i:s"), 'qg_added_by' => $this->session->userdata("adminData")["smember_id"], 'qg_updated_on' => date("Y-m-d H:i:s"), 'qg_updated_by' => $this->session->userdata("adminData")["smember_id"] ); } $this->db->trans_start(); $group_id = $this->TaskAndQuizManagement->createNewQuestionGroup($newSubjectiveGroupQuestionInfo); $subQuestionsInfo = array(); for ($i = 0; $i < sizeof($subQuestions); $i++) { array_push($subQuestionsInfo, array( 'qb_question' => addslashes($subQuestions[$i]), 'qb_marks' => addslashes($subQuestionMarks[$i]), 'qg_id' => $group_id, 'stm_id' => trim($this->input->post('subjectTopic')), 'qb_ques_type_flag' => "S", 'qb_added_on' => date("Y-m-d H:i:s"), 'qb_added_by' => $this->session->userdata("adminData")["smember_id"], 'qb_updated_on' => date("Y-m-d H:i:s"), 'qb_updated_by' => $this->session->userdata("adminData")["smember_id"] )); } $this->session->set_flashdata('genQuestionTab', ''); $this->session->set_flashdata('compQuestionTab', 'active'); if ($this->TaskAndQuizManagement->createNewGeneralQuestionsMulti($subQuestionsInfo)) { $this->db->trans_complete(); $this->session->set_flashdata('successMessage', 'Subjective Group Question Created Successfully.'); redirect("admin/TasksAndQuizzes/subjectiveQuestions"); } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Creating Subjective Group Questions. Try Later.'); redirect("admin/TasksAndQuizzes/subjectiveQuestions"); } } } else { redirect("admin/"); } } public function editSubjectiveComprehensiveQuestions($qg_id) { if ($this->sessionvalidator->isLoggedIn()) { $viewData['courses'] = $this->CourseManagement->getActiveAndNonDeletedCourses()->result(); $viewData['questionInfo'] = $this->TaskAndQuizManagement->getGroupQuestionInfoBy($qg_id)->result(); $this->load->view('admin/quizzes/editSubjectiveComprehensiveQues', $viewData); } else { redirect("admin/"); } } public function updateSubjectiveGroupQuestion() { if ($this->sessionvalidator->isLoggedIn()) { $qg_id = $this->input->post("qg_id"); $this->form_validation->set_rules('subjectCourse', 'Course', 'trim|required', array('required' => 'Please Select Any Course.')); $this->form_validation->set_rules('subject', 'Subject', 'trim|required', array('required' => 'Please Select Any Subject.')); $this->form_validation->set_rules('subjectTopic', 'Subject Topic', 'trim|required', array('required' => 'Please Select Any Topic.')); $this->form_validation->set_rules('questionDesc', 'Question Description', 'trim|required|max_length[1000]', array('required' => 'Question Description Can Not Be Blank.')); $questionImageFileName = ""; if (trim($this->input->post('qg_image')) != "") { $questionImageFileName = substr($this->input->post('qg_image'), strripos($this->input->post('qg_image'), "/") + 1); } if ($this->form_validation->run() == FALSE) { $this->editSubjectiveComprehensiveQuestions($qg_id); } else { $subQuestions = $this->input->post("questions"); $subQuestionMarks = $this->input->post("marks"); if (!empty($_FILES['imageFile']['name'])) { $comphSubQuesImg['upload_path'] = './assets/admin/uploads/questionBank/'; $comphSubQuesImg['allowed_types'] = 'jpeg|jpg|png'; $comphSubQuesImg['max_size'] = '500'; $comphSubQuesImg['file_ext_tolower'] = TRUE; $comphSubQuesImg['encrypt_name'] = TRUE; $this->load->library('upload', $comphSubQuesImg); if (!$this->upload->do_upload('imageFile')) { $this->session->set_flashdata('errorMessage', "Question Image File Can Not Be Uploaded As It Violates Upload File Criteria. File Size 500 KB Max. & Allowed Extension: Only *.png,*.jpg,*.jpeg."); $this->editSubjectiveComprehensiveQuestions($qg_id); } else { $subjectiveGroupQuestionInfo = array( 'qg_id' => $qg_id, 'qg_question' => addslashes(trim($this->input->post('questionDesc'))), 'qg_image' => "/assets/admin/uploads/questionBank/" . $this->upload->data()['file_name'], 'qg_marks' => $this->input->post('totalMarks'), 'qg_updated_on' => date("Y-m-d H:i:s"), 'qg_updated_by' => $this->session->userdata("adminData")["smember_id"] ); } } else { if ($this->input->post("removeImage") != NULL) { $subjectiveGroupQuestionInfo = array( 'qg_id' => $qg_id, 'qg_question' => addslashes(trim($this->input->post('questionDesc'))), 'qg_image' => NULL, 'qg_marks' => $this->input->post('totalMarks'), 'qg_updated_on' => date("Y-m-d H:i:s"), 'qg_updated_by' => $this->session->userdata("adminData")["smember_id"] ); } else { $subjectiveGroupQuestionInfo = array( 'qg_id' => $qg_id, 'qg_question' => addslashes(trim($this->input->post('questionDesc'))), 'qg_marks' => $this->input->post('totalMarks'), 'qg_updated_on' => date("Y-m-d H:i:s"), 'qg_updated_by' => $this->session->userdata("adminData")["smember_id"] ); } } $this->db->trans_start(); $this->TaskAndQuizManagement->updateGroupQuestionInfo($subjectiveGroupQuestionInfo); $subQuestionsInfo = array(); for ($i = 0; $i < sizeof($subQuestions); $i++) { array_push($subQuestionsInfo, array( 'qb_question' => addslashes($subQuestions[$i]), 'qb_marks' => addslashes($subQuestionMarks[$i]), 'qg_id' => $qg_id, 'stm_id' => trim($this->input->post('subjectTopic')), 'qb_ques_type_flag' => "S", 'qb_added_on' => date("Y-m-d H:i:s"), 'qb_added_by' => $this->session->userdata("adminData")["smember_id"], 'qb_updated_on' => date("Y-m-d H:i:s"), 'qb_updated_by' => $this->session->userdata("adminData")["smember_id"] )); } $this->TaskAndQuizManagement->deleteQuestionsBy($qg_id); if ($this->TaskAndQuizManagement->createNewGeneralQuestionsMulti($subQuestionsInfo)) { $this->db->trans_complete(); if (($questionImageFileName != "" && (!empty($_FILES['imageFile']['name'])) ) || ($this->input->post("removeImage") != NULL)) { if (file_exists("./assets/admin/uploads/questionBank/" . $questionImageFileName)) { unlink("./assets/admin/uploads/questionBank/" . $questionImageFileName); } } $this->session->set_flashdata('genQuestionTab', ''); $this->session->set_flashdata('compQuestionTab', 'active'); $this->session->set_flashdata('successMessage', 'Subjective Group Question Updated Successfully.'); redirect("admin/TasksAndQuizzes/subjectiveQuestions"); } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Updating Subjective Group Questiono. Try Later.'); redirect("admin/TasksAndQuizzes/subjectiveQuestions"); } } } else { redirect("admin/"); } } public function deleteGroupQuestion($qg_id) { if ($this->sessionvalidator->isLoggedIn()) { $groupQuestionDeleteData = array( 'qg_id' => $qg_id, 'qg_updated_on' => date("Y-m-d H:i:s"), 'qg_updated_by' => $this->session->userdata("adminData")["smember_id"], 'qg_delete_status' => 'T' ); $this->session->set_flashdata('genQuestionTab', ''); $this->session->set_flashdata('compQuestionTab', 'active'); if ($this->TaskAndQuizManagement->updateGroupQuestionInfo($groupQuestionDeleteData)) { $this->session->set_flashdata('successMessage', 'Group Question Deleted Successfully.'); redirect("admin/TasksAndQuizzes/subjectiveQuestions"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Deleting Group Question. Try Later.'); redirect("admin/TasksAndQuizzes/subjectiveQuestions"); } } else { redirect("admin/"); } } public function getSubjectiveGroupQuestionsBySubjectAndTopic() { $subjectId = $_POST['subject_id']; $topicIds = ($_POST['topic_id'] == "") ? array() : $_POST['topic_id']; $smemeber_id = $_POST['smemeber_id']; $group_question_info = $this->TaskAndQuizManagement->getAllGroupQuestionsOfUser($smemeber_id, "S", $topicIds, $subjectId)->result(); $groupQuestionList = array(); if (sizeof($group_question_info)) { $thisGroupQuestion = ""; $srno = 0; for ($i = 0; $i < sizeof($group_question_info); $i++) { $record = $group_question_info[$i]; $tempGroupQuestion = ""; $tempGroupMarks = ""; $tempGroupImage = ""; $tempSrno = ""; if ($thisGroupQuestion != $record->qg_question) { $thisGroupQuestion = $record->qg_question; $tempGroupQuestion = $record->qg_question; $tempGroupMarks = $record->qg_marks; $tempGroupImage = ($record->qg_image == NULL || $record->qg_image == "") ? "" : "<br><img src='" . base_url($record->qg_image) . "' width='25%' height='50%'/>"; $tempSrno = ++$srno; } else { $tempGroupQuestion = ""; $tempGroupMarks = ""; $tempGroupImage = ""; $tempSrno = ""; } $thisQuestionInfo = array( 'sqg_id' => $record->qg_id, 'srno' => $tempSrno, 'sqg_question' => stripslashes($tempGroupQuestion), 'sqg_marks' => $tempGroupMarks, 'sqg_image' => $tempGroupImage, 'sub_questions' => array( 'sqb_id' => $record->qb_id, 'sqb_question' => stripslashes($record->qb_question), 'sqb_marks' => $record->qb_marks ) ); array_push($groupQuestionList, $thisQuestionInfo); } $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'available_question' => sizeof($groupQuestionList), 'question_list' => $groupQuestionList, 'message' => 'Group Questions Available' ); } else { $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'available_question' => 0, 'question_list' => $groupQuestionList, 'message' => 'No Group Questions Available Under Selected Subject/Topic.' ); } echo json_encode($responseData); } /* Request Handlers For Objective General Questions */ public function objectiveQuestions() { if ($this->sessionvalidator->isLoggedIn() && $this->sessionvalidator->isAccessGranted()) { $viewData['objectiveGenQuestion'] = $this->TaskAndQuizManagement->getAllGeneralQuestionsOfUser($this->session->userdata("adminData")['smember_id'], "O")->result(); $this->load->view("admin/quizzes/objectiveQuestions", $viewData); } else { redirect("admin/"); } } public function createObjectiveQuestion() { if ($this->sessionvalidator->isLoggedIn()) { $viewData['courses'] = $this->CourseManagement->getActiveAndNonDeletedCourses()->result(); $this->load->view('admin/quizzes/addObjectiveGeneralQues', $viewData); } else { redirect("admin/"); } } public function saveNewObjectiveGeneralQuestion() { if ($this->sessionvalidator->isLoggedIn()) { $this->form_validation->set_rules('subjectCourse', 'Course', 'trim|required', array('required' => 'Please Select Any Course.')); $this->form_validation->set_rules('subject', 'Subject', 'trim|required', array('required' => 'Please Select Any Subject.')); $this->form_validation->set_rules('subjectTopic', 'Subject Topic', 'trim|required', array('required' => 'Please Select Any Topic.')); $this->form_validation->set_rules('question', 'Question', 'trim|required|max_length[1000]', array('required' => 'Question Can Not Be Blank.')); $this->form_validation->set_rules('questionMarks', 'Marks', 'trim|required|numeric', array('required' => 'Marks Can Not Be Blank.')); $this->form_validation->set_rules('questionNegMarks', 'Negative Marks', 'trim|required|numeric', array('required' => 'Negative Marks Can Not Be Blank.')); $this->form_validation->set_rules('correctAnswer', 'Correct Question', 'trim|required', array('required' => 'Please Select Correct Answer Option.')); if ($this->form_validation->run() == FALSE) { $this->createObjectiveQuestion(); } else { $objectiveGenQestionInfo = array( 'qb_question' => addslashes(trim($this->input->post("question"))), 'qb_marks' => $this->input->post("questionMarks"), 'qb_negative_marks' => $this->input->post("questionNegMarks"), 'stm_id' => trim($this->input->post('subjectTopic')), 'qb_ques_type_flag' => "O", 'qb_opt_a' => addslashes(trim($this->input->post('option_a'))), 'qb_opt_b' => addslashes(trim($this->input->post('option_b'))), 'qb_opt_c' => addslashes(trim($this->input->post('option_c'))), 'qb_opt_d' => addslashes(trim($this->input->post('option_d'))), 'qb_correct_opt' => addslashes(trim($this->input->post('correctAnswer'))), 'qb_added_on' => date("Y-m-d H:i:s"), 'qb_added_by' => $this->session->userdata("adminData")["smember_id"], 'qb_updated_on' => date("Y-m-d H:i:s"), 'qb_updated_by' => $this->session->userdata("adminData")["smember_id"] ); $this->load->library('upload'); if (!empty($_FILES['imageFile']['name'])) { $genObjQuesImg['upload_path'] = './assets/admin/uploads/questionBank/'; $genObjQuesImg['allowed_types'] = 'jpeg|jpg|png'; $genObjQuesImg['max_size'] = '500'; $genObjQuesImg['file_ext_tolower'] = TRUE; $genObjQuesImg['encrypt_name'] = TRUE; $this->upload->initialize($genObjQuesImg); if (!$this->upload->do_upload('imageFile')) { $this->session->set_flashdata('errorMessage', "Question Image File Can Not Be Uploaded As It Violates Upload File Criteria. File Size 500 KB Max. & Allowed Extension: Only *.png,*.jpg,*.jpeg."); $this->createObjectiveQuestion(); } else { $objectiveGenQestionInfo['qb_image'] = "/assets/admin/uploads/questionBank/" . $this->upload->data()['file_name']; } } if (!empty($_FILES['option_a_img']['name'])) { $optionAImg['upload_path'] = './assets/admin/uploads/questionBank/'; $optionAImg['allowed_types'] = 'jpeg|jpg|png'; $optionAImg['max_size'] = '500'; $optionAImg['file_ext_tolower'] = TRUE; $optionAImg['encrypt_name'] = TRUE; $this->upload->initialize($optionAImg); if (!$this->upload->do_upload('option_a_img')) { $this->session->set_flashdata('errorMessage', "Option 'A' Image File Can Not Be Uploaded As It Violates Upload File Criteria. File Size 500 KB Max. & Allowed Extension: Only *.png,*.jpg,*.jpeg."); $this->createObjectiveQuestion(); } else { $objectiveGenQestionInfo['qb_opt_a_img'] = "/assets/admin/uploads/questionBank/" . $this->upload->data()['file_name']; } } if (!empty($_FILES['option_b_img']['name'])) { $optionAImg['upload_path'] = './assets/admin/uploads/questionBank/'; $optionAImg['allowed_types'] = 'jpeg|jpg|png'; $optionAImg['max_size'] = '500'; $optionAImg['file_ext_tolower'] = TRUE; $optionAImg['encrypt_name'] = TRUE; $this->upload->initialize($optionAImg); if (!$this->upload->do_upload('option_b_img')) { $this->session->set_flashdata('errorMessage', "Option 'B' Image File Can Not Be Uploaded As It Violates Upload File Criteria. File Size 500 KB Max. & Allowed Extension: Only *.png,*.jpg,*.jpeg."); $this->createObjectiveQuestion(); } else { $objectiveGenQestionInfo['qb_opt_b_img'] = "/assets/admin/uploads/questionBank/" . $this->upload->data()['file_name']; } } if (!empty($_FILES['option_c_img']['name'])) { $optionAImg['upload_path'] = './assets/admin/uploads/questionBank/'; $optionAImg['allowed_types'] = 'jpeg|jpg|png'; $optionAImg['max_size'] = '500'; $optionAImg['file_ext_tolower'] = TRUE; $optionAImg['encrypt_name'] = TRUE; $this->upload->initialize($optionAImg); if (!$this->upload->do_upload('option_c_img')) { $this->session->set_flashdata('errorMessage', "Option 'C' Image File Can Not Be Uploaded As It Violates Upload File Criteria. File Size 500 KB Max. & Allowed Extension: Only *.png,*.jpg,*.jpeg."); $this->createObjectiveQuestion(); } else { $objectiveGenQestionInfo['qb_opt_c_img'] = "/assets/admin/uploads/questionBank/" . $this->upload->data()['file_name']; } } if (!empty($_FILES['option_d_img']['name'])) { $optionAImg['upload_path'] = './assets/admin/uploads/questionBank/'; $optionAImg['allowed_types'] = 'jpeg|jpg|png'; $optionAImg['max_size'] = '500'; $optionAImg['file_ext_tolower'] = TRUE; $optionAImg['encrypt_name'] = TRUE; $this->upload->initialize($optionAImg); if (!$this->upload->do_upload('option_d_img')) { $this->session->set_flashdata('errorMessage', "Option 'C' Image File Can Not Be Uploaded As It Violates Upload File Criteria. File Size 500 KB Max. & Allowed Extension: Only *.png,*.jpg,*.jpeg."); $this->createObjectiveQuestion(); } else { $objectiveGenQestionInfo['qb_opt_d_img'] = "/assets/admin/uploads/questionBank/" . $this->upload->data()['file_name']; } } if ($this->TaskAndQuizManagement->createNewGeneralQuestion($objectiveGenQestionInfo)) { $this->session->set_flashdata('successMessage', 'Objective Questions Saved Successfully'); if ($this->input->post("saveAndMove") !== null) { redirect("admin/TasksAndQuizzes/objectiveQuestions"); } else { $this->session->set_flashdata('selectedCourse', $this->input->post("subjectCourse")); $this->session->set_flashdata('selectedSubject', $this->input->post("subject")); $this->session->set_flashdata('selectedTopic', $this->input->post("subjectTopic")); redirect("admin/TasksAndQuizzes/createObjectiveQuestion"); } } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Saving Objective Question. Try Later.'); redirect(current_url()); } } } else { redirect("admin/"); } } public function editObjectiveGeneralQuestion($qb_id) { if ($this->sessionvalidator->isLoggedIn()) { $viewData['courses'] = $this->CourseManagement->getActiveAndNonDeletedCourses()->result(); $viewData['questionInfo'] = $this->TaskAndQuizManagement->getGeneralQuestionInfoBy($qb_id)->result()[0]; $this->load->view('admin/quizzes/editObjectiveGeneralQues', $viewData); } else { redirect("admin/"); } } public function updateObjectiveGeneralQuestion() { if ($this->sessionvalidator->isLoggedIn()) { $qb_id = $this->input->post("qb_id"); $this->form_validation->set_rules('subjectCourse', 'Course', 'trim|required', array('required' => 'Please Select Any Course.')); $this->form_validation->set_rules('subject', 'Subject', 'trim|required', array('required' => 'Please Select Any Subject.')); $this->form_validation->set_rules('subjectTopic', 'Subject Topic', 'trim|required', array('required' => 'Please Select Any Topic.')); $this->form_validation->set_rules('question', 'Question', 'trim|required|max_length[1000]', array('required' => 'Question Can Not Be Blank.')); $this->form_validation->set_rules('questionMarks', 'Marks', 'trim|required|numeric', array('required' => 'Marks Can Not Be Blank.')); $this->form_validation->set_rules('questionNegMarks', 'Negative Marks', 'trim|required|numeric', array('required' => 'Negative Marks Can Not Be Blank.')); $this->form_validation->set_rules('correctAnswer', 'Correct Question', 'trim|required', array('required' => 'Please Select Correct Answer Option.')); $questionImageFileName = ""; $optionAImageFileName = ""; $optionBImageFileName = ""; $optionCImageFileName = ""; $optionDImageFileName = ""; if (trim($this->input->post('qb_image')) != "") { $questionImageFileName = substr($this->input->post('qb_image'), strripos($this->input->post('qb_image'), "/") + 1); } if (trim($this->input->post('oqb_opt_a_image')) != "") { $optionAImageFileName = substr($this->input->post('oqb_opt_a_image'), strripos($this->input->post('oqb_opt_a_image'), "/") + 1); } if (trim($this->input->post('oqb_opt_b_image')) != "") { $optionBImageFileName = substr($this->input->post('oqb_opt_b_image'), strripos($this->input->post('oqb_opt_b_image'), "/") + 1); } if (trim($this->input->post('oqb_opt_c_image')) != "") { $optionCImageFileName = substr($this->input->post('oqb_opt_c_image'), strripos($this->input->post('oqb_opt_c_image'), "/") + 1); } if (trim($this->input->post('oqb_opt_d_image')) != "") { $optionDImageFileName = substr($this->input->post('oqb_opt_d_image'), strripos($this->input->post('oqb_opt_d_image'), "/") + 1); } if ($this->form_validation->run() == FALSE) { $this->editObjectiveGeneralQuestion($qb_id); } else { $objectiveGenQestionInfo = array( 'qb_id' => $qb_id, 'qb_question' => addslashes(trim($this->input->post("question"))), 'qb_marks' => $this->input->post("questionMarks"), 'qb_negative_marks' => $this->input->post("questionNegMarks"), 'stm_id' => trim($this->input->post('subjectTopic')), 'qb_opt_a' => addslashes(trim($this->input->post('option_a'))), 'qb_opt_b' => addslashes(trim($this->input->post('option_b'))), 'qb_opt_c' => addslashes(trim($this->input->post('option_c'))), 'qb_opt_d' => addslashes(trim($this->input->post('option_d'))), 'qb_correct_opt' => addslashes(trim($this->input->post('correctAnswer'))), 'qb_updated_on' => date("Y-m-d H:i:s"), 'qb_updated_by' => $this->session->userdata("adminData")["smember_id"] ); $this->load->library('upload'); if (!empty($_FILES['imageFile']['name'])) { $genObjQuesImg['upload_path'] = './assets/admin/uploads/questionBank/'; $genObjQuesImg['allowed_types'] = 'jpeg|jpg|png'; $genObjQuesImg['max_size'] = '500'; $genObjQuesImg['file_ext_tolower'] = TRUE; $genObjQuesImg['encrypt_name'] = TRUE; $this->upload->initialize($genObjQuesImg); if (!$this->upload->do_upload('imageFile')) { $this->session->set_flashdata('errorMessage', "Question Image File Can Not Be Uploaded As It Violates Upload File Criteria. File Size 500 KB Max. & Allowed Extension: Only *.png,*.jpg,*.jpeg."); $this->createObjectiveQuestion(); } else { $objectiveGenQestionInfo['qb_image'] = "/assets/admin/uploads/questionBank/" . $this->upload->data()['file_name']; } } else { if ($this->input->post("removeImage") != NULL) { $objectiveGenQestionInfo['qb_image'] = NULL; } } if (!empty($_FILES['option_a_img']['name'])) { $optionAImg['upload_path'] = './assets/admin/uploads/questionBank/'; $optionAImg['allowed_types'] = 'jpeg|jpg|png'; $optionAImg['max_size'] = '500'; $optionAImg['file_ext_tolower'] = TRUE; $optionAImg['encrypt_name'] = TRUE; $this->upload->initialize($optionAImg); if (!$this->upload->do_upload('option_a_img')) { $this->session->set_flashdata('errorMessage', "Option 'A' Image File Can Not Be Uploaded As It Violates Upload File Criteria. File Size 500 KB Max. & Allowed Extension: Only *.png,*.jpg,*.jpeg."); $this->createObjectiveQuestion(); } else { $objectiveGenQestionInfo['oqb_opt_a_img'] = "/assets/admin/uploads/questionBank/" . $this->upload->data()['file_name']; } } else { if ($this->input->post("removeOptAImage") != NULL) { $objectiveGenQestionInfo['oqb_opt_a_img'] = NULL; } } if (!empty($_FILES['option_b_img']['name'])) { $optionAImg['upload_path'] = './assets/admin/uploads/questionBank/'; $optionAImg['allowed_types'] = 'jpeg|jpg|png'; $optionAImg['max_size'] = '500'; $optionAImg['file_ext_tolower'] = TRUE; $optionAImg['encrypt_name'] = TRUE; $this->upload->initialize($optionAImg); if (!$this->upload->do_upload('option_b_img')) { $this->session->set_flashdata('errorMessage', "Option 'B' Image File Can Not Be Uploaded As It Violates Upload File Criteria. File Size 500 KB Max. & Allowed Extension: Only *.png,*.jpg,*.jpeg."); $this->createObjectiveQuestion(); } else { $objectiveGenQestionInfo['oqb_opt_b_img'] = "/assets/admin/uploads/questionBank/" . $this->upload->data()['file_name']; } } else { if ($this->input->post("removeOptBImage") != NULL) { $objectiveGenQestionInfo['oqb_opt_b_img'] = NULL; } } if (!empty($_FILES['option_c_img']['name'])) { $optionAImg['upload_path'] = './assets/admin/uploads/questionBank/'; $optionAImg['allowed_types'] = 'jpeg|jpg|png'; $optionAImg['max_size'] = '500'; $optionAImg['file_ext_tolower'] = TRUE; $optionAImg['encrypt_name'] = TRUE; $this->upload->initialize($optionAImg); if (!$this->upload->do_upload('option_c_img')) { $this->session->set_flashdata('errorMessage', "Option 'C' Image File Can Not Be Uploaded As It Violates Upload File Criteria. File Size 500 KB Max. & Allowed Extension: Only *.png,*.jpg,*.jpeg."); $this->createObjectiveQuestion(); } else { $objectiveGenQestionInfo['oqb_opt_c_img'] = "/assets/admin/uploads/questionBank/" . $this->upload->data()['file_name']; } } else { if ($this->input->post("removeOptCImage") != NULL) { $objectiveGenQestionInfo['oqb_opt_c_img'] = NULL; } } if (!empty($_FILES['option_d_img']['name'])) { $optionAImg['upload_path'] = './assets/admin/uploads/questionBank/'; $optionAImg['allowed_types'] = 'jpeg|jpg|png'; $optionAImg['max_size'] = '500'; $optionAImg['file_ext_tolower'] = TRUE; $optionAImg['encrypt_name'] = TRUE; $this->upload->initialize($optionAImg); if (!$this->upload->do_upload('option_d_img')) { $this->session->set_flashdata('errorMessage', "Option 'C' Image File Can Not Be Uploaded As It Violates Upload File Criteria. File Size 500 KB Max. & Allowed Extension: Only *.png,*.jpg,*.jpeg."); $this->createObjectiveQuestion(); } else { $objectiveGenQestionInfo['oqb_opt_d_img'] = "/assets/admin/uploads/questionBank/" . $this->upload->data()['file_name']; } } else { if ($this->input->post("removeOptDImage") != NULL) { $objectiveGenQestionInfo['oqb_opt_d_img'] = NULL; } } if ($this->TaskAndQuizManagement->updateGenralQuestionInfo($objectiveGenQestionInfo)) { if (($questionImageFileName != "" && (!empty($_FILES['imageFile']['name'])) ) || ($this->input->post("removeImage") != NULL)) { if (file_exists("./assets/admin/uploads/questionBank/" . $questionImageFileName)) { unlink("./assets/admin/uploads/questionBank/" . $questionImageFileName); } } if (($optionAImageFileName != "" && (!empty($_FILES['oqb_opt_a_image']['name'])) ) || ($this->input->post("removeOptAImage") != NULL)) { if (file_exists("./assets/admin/uploads/questionBank/" . $optionAImageFileName)) { unlink("./assets/admin/uploads/questionBank/" . $optionAImageFileName); } } if (($optionBImageFileName != "" && (!empty($_FILES['oqb_opt_b_image']['name'])) ) || ($this->input->post("removeOptBImage") != NULL)) { if (file_exists("./assets/admin/uploads/questionBank/" . $optionBImageFileName)) { unlink("./assets/admin/uploads/questionBank/" . $optionBImageFileName); } } if (($optionCImageFileName != "" && (!empty($_FILES['oqb_opt_c_image']['name'])) ) || ($this->input->post("removeOptCImage") != NULL)) { if (file_exists("./assets/admin/uploads/questionBank/" . $optionCImageFileName)) { unlink("./assets/admin/uploads/questionBank/" . $optionCImageFileName); } } if (($optionDImageFileName != "" && (!empty($_FILES['oqb_opt_d_image']['name'])) ) || ($this->input->post("removeOptDImage") != NULL)) { if (file_exists("./assets/admin/uploads/questionBank/" . $optionDImageFileName)) { unlink("./assets/admin/uploads/questionBank/" . $optionDImageFileName); } } $this->session->set_flashdata('successMessage', 'Objective Questions Saved Successfully'); redirect("admin/TasksAndQuizzes/objectiveQuestions"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Deleting Model Paper. Try Later.'); redirect(current_url()); } } } else { redirect("admin/"); } } public function getObjectiveGeneralQuestionsBySubjectAndTopic() { $subjectId = $_POST['subject_id']; $topicIds = ($_POST['topic_id'] == "") ? array() : $_POST['topic_id']; $smemeber_id = $_POST['smemeber_id']; $gen_question_info = $this->TaskAndQuizManagement->getAllGeneralQuestionsOfUser($smemeber_id, "O", $topicIds, $subjectId)->result(); $genQuestionList = array(); if (sizeof($gen_question_info)) { for ($i = 0; $i < sizeof($gen_question_info); $i++) { $thisQuestionInfo = array( 'oqb_id' => $gen_question_info[$i]->qb_id, 'oqb_question' => stripslashes($gen_question_info[$i]->qb_question), 'oqb_image' => ($gen_question_info[$i]->qb_image == NULL || $gen_question_info[$i]->qb_image == "") ? "" : "<br><img src='" . base_url($gen_question_info[$i]->qb_image) . "' width='50%' height='50%'/>", 'oqb_opt_a' => stripslashes($gen_question_info[$i]->qb_opt_a), 'oqb_opt_a_img' => ($gen_question_info[$i]->qb_opt_a_img == NULL || $gen_question_info[$i]->qb_opt_a_img == "") ? "" : "<br><img src='" . base_url($gen_question_info[$i]->qb_opt_a_img) . "' width='50%' height='50%'/>", 'oqb_opt_b' => stripslashes($gen_question_info[$i]->qb_opt_b), 'oqb_opt_b_img' => ($gen_question_info[$i]->qb_opt_b_img == NULL || $gen_question_info[$i]->qb_opt_b_img == "") ? "" : "<br><img src='" . base_url($gen_question_info[$i]->qb_opt_b_img) . "' width='50%' height='50%'/>", 'oqb_opt_c' => stripslashes($gen_question_info[$i]->qb_opt_c), 'oqb_opt_c_img' => ($gen_question_info[$i]->qb_opt_c_img == NULL || $gen_question_info[$i]->qb_opt_c_img == "") ? "" : "<br><img src='" . base_url($gen_question_info[$i]->qb_opt_c_img) . "' width='50%' height='50%'/>", 'oqb_opt_d' => stripslashes($gen_question_info[$i]->qb_opt_d), 'oqb_opt_d_img' => ($gen_question_info[$i]->qb_opt_d_img == NULL || $gen_question_info[$i]->qb_opt_d_img == "") ? "" : "<br><img src='" . base_url($gen_question_info[$i]->qb_opt_d_img) . "' width='50%' height='50%'/>", 'oqb_correct_opt' => $gen_question_info[$i]->qb_correct_opt, 'oqb_marks' => stripslashes($gen_question_info[$i]->qb_marks) ); array_push($genQuestionList, $thisQuestionInfo); } $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'available_question' => sizeof($gen_question_info), 'question_list' => $genQuestionList, 'message' => 'General Questions Available' ); } else { $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'available_question' => 0, 'question_list' => $genQuestionList, 'message' => 'No General Questions Available Under Selected Subject/Topic.' ); } echo json_encode($responseData); } /* Request Handlers For Subjective Model Papers */ public function subjectiveModelPapers() { if ($this->sessionvalidator->isLoggedIn() && $this->sessionvalidator->isAccessGranted()) { $viewData['modelPapers'] = $this->TaskAndQuizManagement->getAllModelExamPapersOfUser($this->session->userdata("adminData")["smember_id"], "S")->result(); $this->load->view('admin/quizzes/modelPapers', $viewData); } else { redirect("admin/"); } } public function createSubjectiveModelPaper() { if ($this->sessionvalidator->isLoggedIn()) { $viewData['courses'] = $this->CourseManagement->getActiveAndNonDeletedCourses()->result(); $this->load->view('admin/quizzes/createSubjectiveModelPaper', $viewData); } else { redirect("admin/"); } } public function saveNewModelExamPaper() { if ($this->sessionvalidator->isLoggedIn()) { $this->form_validation->set_rules('subjectCourse', 'Course', 'trim|required', array('required' => 'Please Select A Course.')); $this->form_validation->set_rules('subject', 'Subject', 'trim|required', array('required' => 'Please Select Any Subject.')); $this->form_validation->set_rules('modelPaperTitle', 'Model Paper Title', 'trim|required', array('required' => 'Please Enter Model Paper Title.')); if ($this->form_validation->run() == FALSE) { $this->createSubjectiveModelPaper(); } else { $selectedGenQuestions = $this->input->post('selectedGenQuestions'); $selectedGroupQuestions = $this->input->post('selectedGroupQuestions'); $newModelPaperInfo = array( 'mepm_title' => addslashes(trim($this->input->post('modelPaperTitle'))), 'mepm_description' => addslashes(trim($this->input->post('modelPaperDesc'))), 'sm_id' => $this->input->post('subject'), 'mepm_type' => $this->input->post('modelPaperType'), 'mepm_added_on' => date("Y-m-d H:i:s"), 'mepm_added_by' => $this->session->userdata("adminData")["smember_id"], 'mepm_updated_on' => date("Y-m-d H:i:s"), 'mepm_updated_by' => $this->session->userdata("adminData")["smember_id"] ); $this->db->trans_start(); $modelPaperQuestionMap = array(); $mepm_id = $this->TaskAndQuizManagement->createNewModelPaper($newModelPaperInfo); for ($i = 0; $i < sizeof($selectedGenQuestions); $i++) { array_push($modelPaperQuestionMap, array( 'mepm_id' => $mepm_id, 'qb_id' => $selectedGenQuestions[$i] )); } for ($i = 0; $i < sizeof($selectedGroupQuestions); $i++) { array_push($modelPaperQuestionMap, array( 'mepm_id' => $mepm_id, 'qb_id' => $selectedGroupQuestions[$i] )); } if ($this->TaskAndQuizManagement->createNewModelPaperQuestionMappingMulti($modelPaperQuestionMap)) { $this->db->trans_complete(); $this->session->set_flashdata('successMessage', 'Model Paper Created Successfully.'); redirect("admin/TasksAndQuizzes/subjectiveModelPapers"); } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Creating Model Paper. Try Later.'); redirect("admin/TasksAndQuizzes/subjectiveModelPapers"); } } } else { redirect("admin/"); } } public function updateModelExamPaper() { if ($this->sessionvalidator->isLoggedIn()) { $model_paper_type = $this->input->post("mepmType"); $mpemUpdateData = array( 'mepm_id' => trim($this->input->post('mepmIdEdit')), 'mepm_title' => addslashes(trim($this->input->post('modelPaperTitleEdit'))), 'mepm_description' => addslashes(trim($this->input->post('modelPaperDescEdit'))), 'mepm_updated_on' => date("Y-m-d H:i:s"), 'mepm_updated_by' => $this->session->userdata("adminData")["smember_id"] ); if ($this->TaskAndQuizManagement->updateModelExamPaperInfo($mpemUpdateData)) { $this->session->set_flashdata('successMessage', 'Model Paper Info Updated Successfully.'); if ($model_paper_type == "S") { redirect("admin/TasksAndQuizzes/subjectiveModelPapers"); } else { redirect("admin/TasksAndQuizzes/objectiveModelPapers"); } } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Updating Model Info. Try Later.'); if ($model_paper_type == "S") { redirect("admin/TasksAndQuizzes/subjectiveModelPapers"); } else { redirect("admin/TasksAndQuizzes/objectiveModelPapers"); } } } else { redirect("admin/"); } } public function toggleModelPaperStatus($mepm_id, $toUpdateStatus, $model_paper_type) { if ($this->sessionvalidator->isLoggedIn()) { $mpemUpdateData = array( 'mepm_id' => $mepm_id, 'mepm_updated_on' => date("Y-m-d H:i:s"), 'mepm_updated_by' => $this->session->userdata("adminData")["smember_id"], 'mepm_active_status' => $toUpdateStatus ); if ($this->TaskAndQuizManagement->updateModelExamPaperInfo($mpemUpdateData)) { $this->session->set_flashdata('successMessage', 'Model Paper Status Updated Successfully.'); if ($model_paper_type == "S") { redirect("admin/TasksAndQuizzes/subjectiveModelPapers"); } else { redirect("admin/TasksAndQuizzes/objectiveModelPapers"); } } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Updating Model Paper Status. Try Later.'); if ($model_paper_type == "S") { redirect("admin/TasksAndQuizzes/subjectiveModelPapers"); } else { redirect("admin/TasksAndQuizzes/objectiveModelPapers"); } } } else { redirect("admin/"); } } public function deleteModelPaper($mepm_id, $model_paper_type) { if ($this->sessionvalidator->isLoggedIn()) { $mpemDeleteData = array( 'mepm_id' => $mepm_id, 'mepm_updated_on' => date("Y-m-d H:i:s"), 'mepm_updated_by' => $this->session->userdata("adminData")["smember_id"], 'mepm_delete_status' => 'T' ); if ($this->TaskAndQuizManagement->updateModelExamPaperInfo($mpemDeleteData)) { $this->session->set_flashdata('successMessage', 'Model Paper Deleted Successfully.'); if ($model_paper_type == "S") { redirect("admin/TasksAndQuizzes/subjectiveModelPapers"); } else { redirect("admin/TasksAndQuizzes/objectiveModelPapers"); } } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Deleting Model Paper. Try Later.'); if ($model_paper_type == "S") { redirect("admin/TasksAndQuizzes/subjectiveModelPapers"); } else { redirect("admin/TasksAndQuizzes/objectiveModelPapers"); } } } else { redirect("admin/"); } } public function getModelPaperInfo() { $mepm_id = $_POST['mepm_id']; $model_paper_info = $this->TaskAndQuizManagement->getModelExamPaperInfoBy($mepm_id)->result()[0]; $model_paper_gen_questions = $this->TaskAndQuizManagement->getModelExamPaperGeneralQuestionsBy($mepm_id)->result(); $model_paper_group_questions = $this->TaskAndQuizManagement->getModelExamPaperGroupQuestionsBy($mepm_id)->result(); $maximumMarks = 0; $allGenQuestions = array(); $allGroupQuestions = array(); /* All General Questions */ for ($i = 0; $i < sizeof($model_paper_gen_questions); $i++) { array_push($allGenQuestions, array( 'sr_no' => ($i + 1) . ".", 'sqb_id' => $model_paper_gen_questions[$i]->qb_id, 'sqb_question' => stripslashes($model_paper_gen_questions[$i]->qb_question), 'sqb_image' => ($model_paper_gen_questions[$i]->qb_image != NULL || $model_paper_gen_questions[$i]->qb_image != "") ? "<br><img src='" . base_url($model_paper_gen_questions[$i]->qb_image) . "' width='50%'>" : "", 'sqb_marks' => $model_paper_gen_questions[$i]->qb_marks )); $maximumMarks += $model_paper_gen_questions[$i]->qb_marks; } /* All General Questions */ /* All Group Questions */ $thisGroupQuestion = ""; $srno = 0; for ($i = 0; $i < sizeof($model_paper_group_questions); $i++) { $record = $model_paper_group_questions[$i]; $tempGroupQuestion = ""; $tempGroupMarks = ""; $tempGroupImage = ""; $tempSrno = ""; if ($thisGroupQuestion != $record->qg_question) { $thisGroupQuestion = $record->qg_question; $tempGroupQuestion = $record->qg_question; $tempGroupMarks = $record->qg_marks; $tempGroupImage = ($record->qg_image == NULL || $record->qg_image == "") ? "" : "<br><center><img src='" . base_url($record->qg_image) . "'/></center>"; $tempSrno = ++$srno; $maximumMarks += $record->qg_marks; } else { $tempGroupQuestion = ""; $tempGroupMarks = ""; $tempGroupImage = ""; $tempSrno = ""; } $thisQuestionInfo = array( 'sr_no' => $tempSrno . ".", 'sqg_id' => $record->qg_id, 'sqg_question' => "<b>" . stripslashes($tempGroupQuestion) . "</b><br>", 'sqg_marks' => $tempGroupMarks, 'sqg_image' => $tempGroupImage, 'sub_questions' => array( 'sqb_id' => $record->qb_id, 'sqb_question' => stripslashes($record->qb_question), 'sqb_marks' => $record->qb_marks ) ); array_push($allGroupQuestions, $thisQuestionInfo); } /* All Group Questions */ $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'mepm_id' => $model_paper_info->mepm_id, 'mepm_title' => stripslashes($model_paper_info->mepm_title), 'mepm_description' => stripslashes($model_paper_info->mepm_description), 'subject_id' => $model_paper_info->sm_id, 'subject_name' => stripslashes($model_paper_info->sm_name), 'subject_code' => stripslashes($model_paper_info->sm_code), 'subject_sem' => ($model_paper_info->course_time_mgmt_flag == "Y") ? $model_paper_info->sm_semester . " Year" : $model_paper_info->sm_semester . " Sem", 'course_id' => $model_paper_info->course_id, 'course_name' => stripslashes($model_paper_info->course_name), 'maximum_marks' => $maximumMarks, 'mepm_gen_questions' => $allGenQuestions, 'mepm_group_questions' => $allGroupQuestions ); echo json_encode($responseData); } /* Request Handlers For Objective Model Papers */ public function objectiveModelPapers() { if ($this->sessionvalidator->isLoggedIn() && $this->sessionvalidator->isAccessGranted()) { $viewData['courses'] = $this->CourseManagement->getActiveAndNonDeletedCourses()->result(); $viewData['sessions'] = $this->SessionManagement->getNonDeletedActiveSessions()->result(); $viewData['objectiveModelPapers'] = $this->TaskAndQuizManagement->getAllModelExamPapersOfUser($this->session->userdata("adminData")["smember_id"], "O")->result(); $this->load->view('admin/quizzes/objectiveModelPapers', $viewData); } else { redirect("admin/"); } } public function createObjectiveModelPaper() { if ($this->sessionvalidator->isLoggedIn()) { $viewData['courses'] = $this->CourseManagement->getActiveAndNonDeletedCourses()->result(); $this->load->view('admin/quizzes/createObjectiveModelPaper', $viewData); } else { redirect("admin/"); } } public function saveNewObjectiveModelExamPaper() { if ($this->sessionvalidator->isLoggedIn()) { $this->form_validation->set_rules('subjectCourse', 'Course', 'trim|required', array('required' => 'Please Select A Course.')); $this->form_validation->set_rules('subject', 'Subject', 'trim|required', array('required' => 'Please Select Any Subject.')); $this->form_validation->set_rules('modelPaperTitle', 'Model Paper Title', 'trim|required', array('required' => 'Please Enter Model Paper Title.')); if ($this->form_validation->run() == FALSE) { $this->createObjectiveModelPaper(); } else { $selectedGenQuestions = $this->input->post('selectedGenQuestions'); $newObjectiveModelPaperInfo = array( 'mepm_title' => addslashes(trim($this->input->post('modelPaperTitle'))), 'mepm_description' => addslashes(trim($this->input->post('modelPaperDesc'))), 'sm_id' => $this->input->post('subject'), 'mepm_type' => "O", 'mepm_added_on' => date("Y-m-d H:i:s"), 'mepm_added_by' => $this->session->userdata("adminData")["smember_id"], 'mepm_updated_on' => date("Y-m-d H:i:s"), 'mepm_updated_by' => $this->session->userdata("adminData")["smember_id"] ); $this->db->trans_start(); $objectiveModelPaperQuestionMap = array(); $omepm_id = $this->TaskAndQuizManagement->createNewModelPaper($newObjectiveModelPaperInfo); for ($i = 0; $i < sizeof($selectedGenQuestions); $i++) { array_push($objectiveModelPaperQuestionMap, array( 'mepm_id' => $omepm_id, 'qb_id' => $selectedGenQuestions[$i] )); } if ($this->TaskAndQuizManagement->createNewModelPaperQuestionMappingMulti($objectiveModelPaperQuestionMap)) { $this->db->trans_complete(); $this->session->set_flashdata('successMessage', 'Objective Model Paper Created Successfully.'); redirect("admin/TasksAndQuizzes/objectiveModelPapers"); } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Creating Objective Model Paper. Try Later.'); redirect("admin/TasksAndQuizzes/objectiveModelPapers"); } } } else { redirect("admin/"); } } public function getObjectiveModelPaperInfo() { $mepm_id = $_POST['omepm_id']; $model_paper_info = $this->TaskAndQuizManagement->getModelExamPaperInfoBy($mepm_id)->result()[0]; $model_paper_gen_questions = $this->TaskAndQuizManagement->getModelExamPaperGeneralQuestionsBy($mepm_id)->result(); $maximumMarks = 0; $allGenQuestions = array(); /* All General Questions */ for ($i = 0; $i < sizeof($model_paper_gen_questions); $i++) { array_push($allGenQuestions, array( 'sr_no' => ($i + 1) . ".", 'oqb_id' => $model_paper_gen_questions[$i]->qb_id, 'oqb_question' => stripslashes($model_paper_gen_questions[$i]->qb_question), 'oqb_image' => ($model_paper_gen_questions[$i]->qb_image != NULL || $model_paper_gen_questions[$i]->qb_image != "") ? "<br><img src='" . base_url($model_paper_gen_questions[$i]->qb_image) . "' width='50%'>" : "", 'oqb_opt_a' => stripslashes($model_paper_gen_questions[$i]->qb_opt_a), 'oqb_opt_a_img' => ($model_paper_gen_questions[$i]->qb_opt_a_img != NULL || $model_paper_gen_questions[$i]->qb_opt_a_img != "") ? "<br><img src='" . base_url($model_paper_gen_questions[$i]->qb_opt_a_img) . "' width='50%'>" : "", 'oqb_opt_b' => stripslashes($model_paper_gen_questions[$i]->qb_opt_b), 'oqb_opt_b_img' => ($model_paper_gen_questions[$i]->qb_opt_b_img != NULL || $model_paper_gen_questions[$i]->qb_opt_b_img != "") ? "<br><img src='" . base_url($model_paper_gen_questions[$i]->qb_opt_b_img) . "' width='50%'>" : "", 'oqb_opt_c' => stripslashes($model_paper_gen_questions[$i]->qb_opt_c), 'oqb_opt_c_img' => ($model_paper_gen_questions[$i]->qb_opt_c_img != NULL || $model_paper_gen_questions[$i]->qb_opt_c_img != "") ? "<br><img src='" . base_url($model_paper_gen_questions[$i]->qb_opt_c_img) . "' width='50%'>" : "", 'oqb_opt_d' => stripslashes($model_paper_gen_questions[$i]->qb_opt_d), 'oqb_opt_d_img' => ($model_paper_gen_questions[$i]->qb_opt_d_img != NULL || $model_paper_gen_questions[$i]->qb_opt_d_img != "") ? "<br><img src='" . base_url($model_paper_gen_questions[$i]->qb_opt_d_img) . "' width='50%'>" : "", 'oqb_marks' => $model_paper_gen_questions[$i]->qb_marks )); $maximumMarks += $model_paper_gen_questions[$i]->qb_marks; } /* All General Questions */ $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'omepm_id' => $model_paper_info->mepm_id, 'omepm_title' => stripslashes($model_paper_info->mepm_title), 'omepm_description' => stripslashes($model_paper_info->mepm_description), 'subject_name' => stripslashes($model_paper_info->sm_name), 'subject_code' => stripslashes($model_paper_info->sm_code), 'subject_sem' => ($model_paper_info->course_time_mgmt_flag == "Y") ? $model_paper_info->sm_semester . " Year" : $model_paper_info->sm_semester . " Sem", 'course_name' => stripslashes($model_paper_info->course_name), 'maximum_marks' => $maximumMarks, 'omepm_gen_questions' => $allGenQuestions ); echo json_encode($responseData); } public function getAllModelPaperBySubjectForDropDown() { $sm_id = $_POST['sm_id']; $mepm_id = (isset($_POST['mepm_id'])) ? $_POST['mepm_id'] : ""; $query = $this->TaskAndQuizManagement->getAllModelExamPapersOfUserBySubject($this->session->userdata("adminData")["smember_id"], $sm_id); $modelPaperList = $query->result(); $options = ""; for ($i = 0; $i < (sizeof($modelPaperList)); $i++) { $selected = ""; if ($mepm_id != "" && ($modelPaperList[$i]->mepm_id == $mepm_id )) { $selected = "selected"; } $mepmType = ($modelPaperList[$i]->mepm_type == "S") ? "Subjective" : (($modelPaperList[$i]->mepm_type == "O") ? "Objective" : "Miscelleneous"); $options .= "<option value=" . $modelPaperList[$i]->mepm_id . " " . $selected . ">" . stripslashes($modelPaperList[$i]->mepm_title) . " (" . $mepmType . ")" . "</option>"; } $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'model_paper_list' => $options ); echo json_encode($responseData); } /* Request Handlers For Model Paper Scheduling & Related Stuffs */ public function modelPaperSchedules() { if ($this->sessionvalidator->isLoggedIn() && $this->sessionvalidator->isAccessGranted()) { $modelPaperInfo = array(); $modelPaperSchedules = array(); if (isset($_POST['fetchSchedules'])) { $selectedModelPaper = trim($this->input->post('modelPaper')); if ($selectedModelPaper != "") { $modelPaperInfo = $this->TaskAndQuizManagement->getModelExamPaperInfoBy($selectedModelPaper)->result(); $modelPaperSchedules = $this->TaskAndQuizManagement->getAllSchedulesOfModelPaperBy($selectedModelPaper)->result(); $this->session->set_flashdata('errorMessage', NULL); } else { $this->session->set_flashdata('errorMessage', "Please Select Any Model Paper To Get Its Schedule."); } } $viewData['subjects'] = $this->SubjectManagement->getAllActiveNonDeletedSubjects()->result(); $viewData['modelPaperInfo'] = $modelPaperInfo; $viewData['modelPaperSchedules'] = $modelPaperSchedules; $this->load->view('admin/quizzes/modelPaperSchedules', $viewData); } else { redirect("admin/"); } } public function createNewSchedule() { if ($this->sessionvalidator->isLoggedIn()) { $viewData['sessions'] = $this->SessionManagement->getNonDeletedActiveSessions(array('C'))->result(); $viewData['subjects'] = $this->SubjectManagement->getAllActiveNonDeletedSubjects()->result(); $this->load->view('admin/quizzes/scheduleModelPaper', $viewData); } else { redirect("admin/"); } } public function saveModelPaperSchedule() { if ($this->sessionvalidator->isLoggedIn()) { $this->form_validation->set_rules('subject', 'Subject', 'trim|required', array('required' => 'Please Select Any Subject.')); $this->form_validation->set_rules('modelPaper', 'Model Paper', 'trim|required', array('required' => 'Please Select Any Model Paper.')); $this->form_validation->set_rules('scheduleStartDate', 'Start Date', 'trim|required', array('required' => 'Please Enter/Choose Start Date.')); $this->form_validation->set_rules('scheduleEndDate', 'End Date', 'trim|required', array('required' => 'Please Enter/Choose End Date.')); $this->form_validation->set_rules('allowedAttempts', 'Allowed Attempts', 'trim|required', array('required' => 'Please Select Allowed Attempts.')); $selectedStudents = $this->input->post('selectedStudents'); if ($this->form_validation->run() == FALSE) { $this->createNewSchedule(); } else if (!sizeof($selectedStudents)) { $this->session->set_flashdata('errorMessage', "Please Select At Least One Student To Schedule Model Paper."); $this->createNewSchedule(); } else { $newModelPaperStudentAllot = array(); $newScheduleInfo = array( 'mepsch_start_date' => date("Y-m-d 00:00:00", strtotime(str_replace('/', '-', trim($this->input->post("scheduleStartDate"))))), 'mepsch_end_date' => date("Y-m-d 23:59:59", strtotime(str_replace('/', '-', trim($this->input->post("scheduleEndDate"))))), 'mepsch_is_result_to_show' => trim($this->input->post('resultShow')), 'mepsch_is_detailed_result_to_show' => (trim($this->input->post('detailedResultShow')) == "") ? "F" : trim($this->input->post('detailedResultShow')), 'mepsch_allowed_attempts' => trim($this->input->post("allowedAttempts")), 'mepm_id' => trim($this->input->post("modelPaper")), 'mepsch_schedule_on' => date("Y-m-d H:i:s"), 'mepsch_scheduled_by' => $this->session->userdata("adminData")["smember_id"], 'mepsch_updated_on' => date("Y-m-d H:i:s"), 'mepsch_updated_by' => $this->session->userdata("adminData")["smember_id"] ); $this->db->trans_start(); $schedule_id = $this->TaskAndQuizManagement->createNewModelPaperSchedule($newScheduleInfo); for ($i = 0; $i < sizeof($selectedStudents); $i++) { array_push($newModelPaperStudentAllot, array( 'mepm_id' => trim($this->input->post("modelPaper")), 'tspi_id' => $selectedStudents[$i], 'mepsch_id' => $schedule_id, 'mepsa_allowed_attempts' => trim($this->input->post("allowedAttempts")) )); } if (sizeof($newModelPaperStudentAllot)) { if ($this->TaskAndQuizManagement->createNewModelPaperStudentAllotmentMulti($newModelPaperStudentAllot)) { $this->db->trans_complete(); $this->session->set_flashdata('successMessage', 'Model Paper Scheduled Successfully.'); redirect("admin/TasksAndQuizzes/modelPaperSchedules"); } else { $this->session->set_flashdata('errorMessage', 'Student Allotment Error Occured While Scheduling Model Paper. Try Later.'); redirect("admin/TasksAndQuizzes/modelPaperSchedules"); } } else { $this->session->set_flashdata('errorMessage', 'Allotment Failed! No Students Selected For Scheduling. Please Select Student(s).'); redirect("admin/TasksAndQuizzes/modelPaperSchedules"); } } } else { redirect("admin/"); } } public function editModelPaperScheduleStatus($mepsch_id) { if ($this->sessionvalidator->isLoggedIn()) { $viewData['subjects'] = $this->SubjectManagement->getAllActiveNonDeletedSubjects()->result(); $viewData['scheduleInfo'] = $this->TaskAndQuizManagement->getModelPaperScheduleInfoBy($mepsch_id)->result()[0]; $this->load->view('admin/quizzes/editModelPaperSchedule', $viewData); } else { redirect("admin/"); } } public function updateModelPaperSchedule() { if ($this->sessionvalidator->isLoggedIn()) { $mepsch_id = $this->input->post("mepsch_id"); $this->form_validation->set_rules('subject', 'Subject', 'trim|required', array('required' => 'Please Select Any Subject.')); $this->form_validation->set_rules('modelPaper', 'Model Paper', 'trim|required', array('required' => 'Please Select Any Model Paper.')); $this->form_validation->set_rules('scheduleStartDate', 'Start Date', 'trim|required', array('required' => 'Please Enter/Choose Start Date.')); $this->form_validation->set_rules('scheduleEndDate', 'End Date', 'trim|required', array('required' => 'Please Enter/Choose End Date.')); $this->form_validation->set_rules('allowedAttempts', 'Allowed Attempts', 'trim|required', array('required' => 'Please Select Allowed Attempts.')); $selectedStudents = $this->input->post('selectedStudents'); if ($this->form_validation->run() == FALSE) { $this->editModelPaperScheduleStatus($mepsch_id); } else if (!sizeof($selectedStudents)) { $this->session->set_flashdata('errorMessage', "Please Select At Least One Student To Schedule Model Paper."); $this->editModelPaperScheduleStatus($mepsch_id); } else { $newModelPaperStudentAllot = array(); $scheduleUpdatedInfo = array( 'mepsch_id' => $mepsch_id, 'mepsch_start_date' => date("Y-m-d 00:00:00", strtotime(str_replace('/', '-', trim($this->input->post("scheduleStartDate"))))), 'mepsch_end_date' => date("Y-m-d 23:59:59", strtotime(str_replace('/', '-', trim($this->input->post("scheduleEndDate"))))), 'mepsch_is_result_to_show' => trim($this->input->post('resultShow')), 'mepsch_is_detailed_result_to_show' => (trim($this->input->post('detailedResultShow')) == "") ? "F" : trim($this->input->post('detailedResultShow')), 'mepsch_allowed_attempts' => trim($this->input->post("allowedAttempts")), 'mepm_id' => trim($this->input->post("modelPaper")), 'mepsch_updated_on' => date("Y-m-d H:i:s"), 'mepsch_updated_by' => $this->session->userdata("adminData")["smember_id"] ); $this->db->trans_start(); if ($this->TaskAndQuizManagement->updateModelExamPaperScheduleInfo($scheduleUpdatedInfo)) { $this->TaskAndQuizManagement->deleteModelExamPaperStudentAllotment($mepsch_id); for ($i = 0; $i < sizeof($selectedStudents); $i++) { array_push($newModelPaperStudentAllot, array( 'mepm_id' => trim($this->input->post("modelPaper")), 'tspi_id' => $selectedStudents[$i], 'mepsch_id' => $mepsch_id, 'mepsa_allowed_attempts' => trim($this->input->post("allowedAttempts")) )); } if ($this->TaskAndQuizManagement->createNewModelPaperStudentAllotmentMulti($newModelPaperStudentAllot)) { $this->db->trans_complete(); $this->session->set_flashdata('successMessage', 'Schedule Updated Successfully.'); redirect("admin/TasksAndQuizzes/modelPaperSchedules"); } else { $this->session->set_flashdata('errorMessage', 'Student Allotment Error Occured While Updating Model Paper Schedule. Try Later.'); redirect("admin/TasksAndQuizzes/modelPaperSchedules"); } } else { $this->session->set_flashdata('errorMessage', 'Allotment Failed! No Students Selected For Scheduling. Please Select Student(s).'); redirect("admin/TasksAndQuizzes/modelPaperSchedules"); } } } else { redirect("admin/"); } } public function toggleModelPaperScheduleStatus($mepsch_id, $toUpdateStatus) { if ($this->sessionvalidator->isLoggedIn()) { $scheduleUpdateData = array( 'mepsch_id' => $mepsch_id, 'mepsch_updated_on' => date("Y-m-d H:i:s"), 'mepsch_updated_by' => $this->session->userdata("adminData")["smember_id"], 'mepsch_active_status' => $toUpdateStatus ); if ($this->TaskAndQuizManagement->updateModelExamPaperScheduleInfo($scheduleUpdateData)) { $this->session->set_flashdata('successMessage', 'Model Paper Schedule Updated Successfully.'); redirect("admin/TasksAndQuizzes/modelPaperSchedules"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Updating Model Paper Schedule. Try Later.'); redirect("admin/TasksAndQuizzes/modelPaperSchedules"); } } else { redirect("admin/"); } } public function deleteModelPaperSchedule($mepsch_id) { if ($this->sessionvalidator->isLoggedIn()) { $scheduleUpdateData = array( 'mepsch_id' => $mepsch_id, 'mepsch_updated_on' => date("Y-m-d H:i:s"), 'mepsch_updated_by' => $this->session->userdata("adminData")["smember_id"], 'mepsch_delete_status' => 'T' ); if ($this->TaskAndQuizManagement->updateModelExamPaperScheduleInfo($scheduleUpdateData)) { $this->session->set_flashdata('successMessage', 'Model Paper Schedule Deleted Successfully.'); redirect("admin/TasksAndQuizzes/modelPaperSchedules"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Deleting Model Paper Schedule. Try Later.'); redirect("admin/TasksAndQuizzes/modelPaperSchedules"); } } else { redirect("admin/"); } } public function getModelPaperAttemptInfo() { $mepsch_id = $_POST['mepsch_id']; $studentAttemptInfo = array(); $allottedStudentsInfo = $this->TaskAndQuizManagement->getAllottedModelPapersBySchedule($mepsch_id)->result(); if (sizeof($allottedStudentsInfo)) { for ($i = 0; $i < sizeof($allottedStudentsInfo); $i++) { $student_info = $this->StudentManagement->getStudentPersonalInfoAndPhotoSignBy($allottedStudentsInfo[$i]->tspi_id)->result()[0]; $studentAttemptDetails = $this->TaskAndQuizManagement->getModelPaperAttemptResponseByStudent($allottedStudentsInfo[$i]->tspi_id, $allottedStudentsInfo[$i]->mepm_id)->result(); if (sizeof($studentAttemptDetails)) { $maximumMarks = 0.0; $obtainedMarks = 0.0; $totalAttempts = sizeof($this->TaskAndQuizManagement->getModelPaperAttemptByStudent($allottedStudentsInfo[$i]->tspi_id, $allottedStudentsInfo[$i]->mepm_id)->result()); for ($j = 0; $j < sizeof($studentAttemptDetails); $j++) { $maximumMarks += $studentAttemptDetails[$j]->qb_marks; if ($studentAttemptDetails[$j]->meprm_obj_resp == $studentAttemptDetails[$j]->meprm_correct_resp) { $obtainedMarks += $studentAttemptDetails[$j]->qb_marks; } else { $obtainedMarks -= $studentAttemptDetails[$j]->qb_negative_marks; } } array_push($studentAttemptInfo, array( 'stu_id' => $student_info->tspi_id, 'stu_enrollment_no' => ($student_info->tspi_form_no == $student_info->tspi_enrollment_no) ? "-" : stripslashes($student_info->tspi_enrollment_no), 'stu_name' => stripslashes($student_info->tspi_name), 'result' => $obtainedMarks . "/" . $maximumMarks, 'attempts_used' => $totalAttempts, 'allowed_attempts' => ($allottedStudentsInfo[$i]->mepsch_allowed_attempts == 0) ? "Unlimited Attempts" : $allottedStudentsInfo[$i]->mepsch_allowed_attempts )); } else { array_push($studentAttemptInfo, array( 'stu_id' => $student_info->tspi_id, 'stu_enrollment_no' => ($student_info->tspi_form_no == $student_info->tspi_enrollment_no) ? "-" : stripslashes($student_info->tspi_enrollment_no), 'stu_name' => stripslashes($student_info->tspi_name), 'result' => "Not Available", 'attempts_used' => 0, 'allowed_attempts' => ($allottedStudentsInfo[$i]->mepsch_allowed_attempts == 0) ? "Unlimited Attempts" : $allottedStudentsInfo[$i]->mepsch_allowed_attempts )); } } } $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'student_attempt_info' => $studentAttemptInfo ); echo json_encode($responseData); } public function unlockModelPaperAttempt() { $mepsch_id = $_POST['mepsch_id']; $tspi_id = $_POST['tspi_id']; $allottedStudentsInfo = $this->TaskAndQuizManagement->getAllottedModelPapersBySchedule($mepsch_id, '', $tspi_id)->result()[0]; $mepm_id = $allottedStudentsInfo->mepm_id; $allowed_attempts = $allottedStudentsInfo->mepsch_allowed_attempts; if ($allowed_attempts == 1) { $this->db->trans_start(); $this->TaskAndQuizManagement->deleteModelPaperStudentAttempt($mepsch_id, $mepm_id, $tspi_id, false); $this->TaskAndQuizManagement->deleteModelPaperStudentResponse($mepsch_id, $mepm_id, $tspi_id); $this->db->trans_complete(); } else { $this->TaskAndQuizManagement->deleteModelPaperStudentAttempt($mepsch_id, $mepm_id, $tspi_id, true); } $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'unlock_response' => 1 ); echo json_encode($responseData); } /* Request Handler For E-Content Management */ public function eContents() { if ($this->sessionvalidator->isLoggedIn() && $this->sessionvalidator->isAccessGranted()) { $filterRecords = array(); if (isset($_POST['fetchEContents'])) { $searchKeyword = trim($this->input->post('title')); $selectedSession = trim($this->input->post('session')); $selectedSubject = trim($this->input->post('subject')); $selectedStartDate = (trim($this->input->post("startDate")) == "") ? "" : date("Y-m-d 00:00:00", strtotime(str_replace('/', '-', trim($this->input->post("startDate"))))); $selectedEndDate = (trim($this->input->post("endDate")) == "") ? "" : date("Y-m-d 23:59:59", strtotime(str_replace('/', '-', trim($this->input->post("endDate"))))); $selectedRangeAppliedWith = (trim($this->input->post("dateRangeAppliedWith")) == "") ? "" : trim($this->input->post("dateRangeAppliedWith")); $filterRecords = $this->TaskAndQuizManagement->getAllEContentsBy($this->session->userdata("adminData")["smember_id"], "F", $searchKeyword, $selectedSession, $selectedSubject, $selectedStartDate, $selectedEndDate, $selectedRangeAppliedWith)->result(); } else { $selectedSession = $this->SessionManagement->getCurrentSessionInfo()->result()[0]->session_id; $filterRecords = $this->TaskAndQuizManagement->getAllEContentsBy($this->session->userdata("adminData")["smember_id"], "F", '', $selectedSession, '', '', '', '', '')->result(); } $viewData['sessions'] = $this->SessionManagement->getNonDeletedActiveSessions()->result(); $viewData['subjects'] = $this->SubjectManagement->getAllotedSubjectBy($this->session->userdata("adminData")["smember_id"], '', '')->result(); $viewData['econtents'] = $filterRecords; $this->load->view('admin/quizzes/eContents', $viewData); } else { redirect("admin/"); } } public function createNewEContent() { if ($this->sessionvalidator->isLoggedIn()) { $viewData['sessions'] = $this->SessionManagement->getNonDeletedActiveSessions(array('C'))->result(); $viewData['subjects'] = $this->SubjectManagement->getAllotedSubjectBy($this->session->userdata("adminData")["smember_id"], $this->SessionManagement->getCurrentSessionInfo()->result()[0]->session_id, '')->result(); $this->load->view('admin/quizzes/createEContent', $viewData); } else { redirect("admin/"); } } public function saveNewEContent() { if ($this->sessionvalidator->isLoggedIn()) { $this->form_validation->set_rules('session', 'Session', 'trim|required', array('required' => 'Session Selection Is Required.')); $this->form_validation->set_rules('subject', 'Subject', 'trim|required', array('required' => 'Please Select Any Subject.')); $this->form_validation->set_rules('course', 'Course', 'trim|required', array('required' => 'Course Selection Is Required.')); $this->form_validation->set_rules('title', 'E-Content Title', 'trim|required', array('required' => 'Please Enter E-Content Title.')); if ($this->form_validation->run() == FALSE) { $this->createNewEContent(); } else if (empty($_FILES['file']['name'])) { $this->form_validation->set_rules('file', 'File', 'required', array('required' => 'E-Content File Is Required.')); $this->form_validation->run(); $this->createNewEContent(); } else { $eContentFileNameWithPath = ""; $configEContentFile['upload_path'] = './assets/admin/uploads/econtents/'; $configEContentFile['allowed_types'] = 'pdf|ppt|pptx|doc|docx|xls|xlsx|rar|zip|txt|csv|png|jpg|jpeg'; $configEContentFile['max_size'] = '2048'; $configEContentFile['file_ext_tolower'] = TRUE; $configEContentFile['encrypt_name'] = TRUE; $this->load->library('upload', $configEContentFile); if (!$this->upload->do_upload('file')) { $this->session->set_flashdata('errorMessage', "E-Content File Can Not Be Uploaded. File Size 2 MB Max. & Allowed Extension: Only *.pdf,*.ppt(x),*.doc(x),*.xls(x),*.rar,*.zip,*.txt,*.csv,*.png,*.jpg,*.jpeg."); $this->createNewEContent(); } else { $eContentFileNameWithPath = "/assets/admin/uploads/econtents/" . $this->upload->data()['file_name']; $newEContentInfo = array( 'ecm_title' => trim(addslashes($this->input->post("title"))), 'ecm_description' => trim(addslashes($this->input->post("description"))), 'ecm_file' => $eContentFileNameWithPath, 'sm_id' => trim($this->input->post('subject')), 'session_id' => trim($this->input->post("session")), 'ecm_added_on' => date("Y-m-d H:i:s"), 'ecm_added_by' => $this->session->userdata("adminData")["smember_id"], 'ecm_updated_on' => date("Y-m-d H:i:s"), 'ecm_updated_by' => $this->session->userdata("adminData")["smember_id"] ); if ($this->TaskAndQuizManagement->createNewEContent($newEContentInfo)) { $this->db->trans_complete(); $this->session->set_flashdata('successMessage', 'E-Content Saved Successfully.'); redirect("admin/TasksAndQuizzes/eContents"); } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Saving E-Content. Try Later.'); redirect(current_url()); } } } } else { redirect("admin/"); } } public function editEContent($ecm_id) { if ($this->sessionvalidator->isLoggedIn()) { $viewData['econtentInfo'] = $this->TaskAndQuizManagement->getEContentInfoBy($ecm_id)->result()[0]; $viewData['sessions'] = $this->SessionManagement->getNonDeletedActiveSessions(array('C'))->result(); $viewData['subjects'] = $this->SubjectManagement->getAllotedSubjectBy($this->session->userdata("adminData")["smember_id"], $this->SessionManagement->getCurrentSessionInfo()->result()[0]->session_id, '')->result(); $this->load->view('admin/quizzes/editEContent', $viewData); } else { redirect("admin/"); } } public function updateEContent() { if ($this->sessionvalidator->isLoggedIn()) { $ecm_id = trim($this->input->post("ecm_id")); $this->form_validation->set_rules('session', 'Session', 'trim|required', array('required' => 'Session Selection Is Required.')); $this->form_validation->set_rules('subject', 'Subject', 'trim|required', array('required' => 'Please Select Any Subject.')); $this->form_validation->set_rules('course', 'Course', 'trim|required', array('required' => 'Course Selection Is Required.')); $this->form_validation->set_rules('title', 'E-Content Title', 'trim|required', array('required' => 'Please Enter E-Content Title.')); $eContentCurrentFileName = substr($this->input->post('ecm_file_path'), strripos($this->input->post('ecm_file_path'), "/") + 1); if ($this->form_validation->run() == FALSE) { $this->editEContent($ecm_id); } else { if (empty($_FILES['file']['name'])) { $eContentUpdatedInfo = array( 'ecm_id' => $ecm_id, 'ecm_title' => trim(addslashes($this->input->post("title"))), 'ecm_description' => trim(addslashes($this->input->post("description"))), 'sm_id' => trim($this->input->post('subject')), 'session_id' => trim($this->input->post("session")), 'ecm_updated_on' => date("Y-m-d H:i:s"), 'ecm_updated_by' => $this->session->userdata("adminData")["smember_id"] ); if ($this->TaskAndQuizManagement->updateEContentInfo($eContentUpdatedInfo)) { $this->db->trans_complete(); $this->session->set_flashdata('successMessage', 'E-Content Saved Successfully.'); redirect("admin/TasksAndQuizzes/eContents"); } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Saving E-Content. Try Later.'); redirect(current_url()); } } else { $eContentFileNameWithPath = ""; $configEContentFile['upload_path'] = './assets/admin/uploads/econtents/'; $configEContentFile['allowed_types'] = 'pdf|ppt|pptx|doc|docx|xls|xlsx|rar|zip|txt|csv|png|jpg|jpeg'; $configEContentFile['max_size'] = '2048'; $configEContentFile['file_ext_tolower'] = TRUE; $configEContentFile['encrypt_name'] = TRUE; $this->load->library('upload', $configEContentFile); if (!$this->upload->do_upload('file')) { $this->session->set_flashdata('errorMessage', "E-Content File Can Not Be Uploaded. File Size 2 MB Max. & Allowed Extension: Only *.pdf,*.ppt(x),*.doc(x),*.xls(x),*.rar,*.zip,*.txt,*.csv,*.png,*.jpg,*.jpeg."); $this->editEContent($ecm_id); } else { $eContentFileNameWithPath = "/assets/admin/uploads/econtents/" . $this->upload->data()['file_name']; $eContentUpdatedInfo = array( 'ecm_id' => $ecm_id, 'ecm_title' => trim(addslashes($this->input->post("title"))), 'ecm_description' => trim(addslashes($this->input->post("description"))), 'ecm_file' => $eContentFileNameWithPath, 'sm_id' => trim($this->input->post('subject')), 'session_id' => trim($this->input->post("session")), 'ecm_updated_on' => date("Y-m-d H:i:s"), 'ecm_updated_by' => $this->session->userdata("adminData")["smember_id"] ); if ($this->TaskAndQuizManagement->updateEContentInfo($eContentUpdatedInfo)) { $this->db->trans_complete(); if (file_exists("./assets/admin/uploads/econtents/" . $eContentCurrentFileName)) { unlink("./assets/admin/uploads/econtents/" . $eContentCurrentFileName); } $this->session->set_flashdata('successMessage', 'E-Content Saved Successfully.'); redirect("admin/TasksAndQuizzes/eContents"); } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Saving E-Content. Try Later.'); redirect(current_url()); } } } } } else { redirect("admin/"); } } public function toggleEContentStatus($ecm_id, $toUpdateStatus) { if ($this->sessionvalidator->isLoggedIn()) { $eContentUpdateData = array( 'ecm_id' => $ecm_id, 'ecm_updated_on' => date("Y-m-d H:i:s"), 'ecm_updated_by' => $this->session->userdata("adminData")["smember_id"], 'ecm_active_status' => $toUpdateStatus ); if ($this->TaskAndQuizManagement->updateEContentInfo($eContentUpdateData)) { $this->session->set_flashdata('successMessage', 'E-Content Status Updated Successfully.'); redirect("admin/TasksAndQuizzes/eContents"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Updating E-Content Status. Try Later.'); redirect(current_url()); } } else { redirect("admin/"); } } public function deleteEContent($ecm_id) { if ($this->sessionvalidator->isLoggedIn()) { $eContentUpdateData = array( 'ecm_id' => $ecm_id, 'ecm_updated_on' => date("Y-m-d H:i:s"), 'ecm_updated_by' => $this->session->userdata("adminData")["smember_id"], 'ecm_delete_status' => 'T' ); if ($this->TaskAndQuizManagement->updateEContentInfo($eContentUpdateData)) { $this->session->set_flashdata('successMessage', 'E-Content Deleted Successfully.'); redirect("admin/TasksAndQuizzes/eContents"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Deleting E-Content. Try Later.'); redirect(current_url()); } } else { redirect("admin/"); } } public function getAllEContentsForDropDown() { $sm_id = $_POST['subject_id']; $session_id = $_POST['session_id']; $ecm_id = (isset($_POST['ecm_id'])) ? $_POST['ecm_id'] : ""; $query = $this->TaskAndQuizManagement->getAllEContentsBy($this->session->userdata("adminData")["smember_id"], "F", '', $session_id, '', $sm_id, '', '', ''); $eContentList = $query->result(); $options = ""; for ($i = 0; $i < (sizeof($eContentList)); $i++) { $selected = ""; if ($ecm_id != "" && ($eContentList[$i]->ecm_id == $ecm_id )) { $selected = "selected"; } $options .= "<option value=" . $eContentList[$i]->ecm_id . " " . $selected . ">" . stripslashes($eContentList[$i]->ecm_title) . "</option>"; } $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'econtent_list' => $options ); echo json_encode($responseData); } /* Request Handlers Related To E-Content Assignments */ public function eContentAssigments() { if ($this->sessionvalidator->isLoggedIn() && $this->sessionvalidator->isAccessGranted()) { $filterRecords = array(); if (isset($_POST['fetchEContentsSchedules'])) { $searchKeyword = trim($this->input->post('title')); $selectedSession = trim($this->input->post('session')); $selectedSubject = trim($this->input->post('subject')); $selectedEContent = trim($this->input->post('econtent')); $selectedStartDate = (trim($this->input->post("startDate")) == "") ? "" : date("Y-m-d 00:00:00", strtotime(str_replace('/', '-', trim($this->input->post("startDate"))))); $selectedEndDate = (trim($this->input->post("endDate")) == "") ? "" : date("Y-m-d 23:59:59", strtotime(str_replace('/', '-', trim($this->input->post("endDate"))))); $filterRecords = $this->TaskAndQuizManagement->getAllEContentSchedulesBy($this->session->userdata("adminData")["smember_id"], 'F', $searchKeyword, $selectedSession, $selectedSubject, $selectedEContent, $selectedStartDate, $selectedEndDate)->result(); } else { $filterRecords = $this->TaskAndQuizManagement->getAllEContentSchedulesBy($this->session->userdata("adminData")["smember_id"], 'F', '', $this->SessionManagement->getCurrentSessionInfo()->result()[0]->session_id, '', '', '', '')->result(); } $viewData['sessions'] = $this->SessionManagement->getNonDeletedActiveSessions()->result(); $viewData['subjects'] = $this->SubjectManagement->getAllotedSubjectBy($this->session->userdata("adminData")["smember_id"], '', '')->result(); $viewData['econtents'] = $this->TaskAndQuizManagement->getAllEContentsBy($this->session->userdata("adminData")["smember_id"], 'F', '', '', '', '', '', '', '')->result(); $viewData['econtentAssignments'] = $filterRecords; $this->load->view('admin/quizzes/eContentAssignments', $viewData); } else { redirect("admin/"); } } public function assignNewEContent() { if ($this->sessionvalidator->isLoggedIn()) { $viewData['sessions'] = $this->SessionManagement->getNonDeletedActiveSessions()->result(); $viewData['subjects'] = $this->SubjectManagement->getAllotedSubjectBy($this->session->userdata("adminData")["smember_id"], $this->SessionManagement->getCurrentSessionInfo()->result()[0]->session_id, '')->result(); $this->load->view('admin/quizzes/assignEContent', $viewData); } else { redirect("admin/"); } } public function makeEContentAssignment() { if ($this->sessionvalidator->isLoggedIn()) { $this->form_validation->set_rules('session', 'Session', 'trim|required', array('required' => 'Please Select Any Session.')); $this->form_validation->set_rules('subject', 'Start Date', 'trim|required', array('required' => 'Please Select Any Subject.')); $this->form_validation->set_rules('econtent', 'End Date', 'trim|required', array('required' => 'Please Select Any E-Content.')); $this->form_validation->set_rules('scheduleStartDate', 'Start Date', 'trim|required', array('required' => 'Please Enter/Choose Start Date.')); $this->form_validation->set_rules('scheduleEndDate', 'End Date', 'trim|required', array('required' => 'Please Enter/Choose End Date.')); $selectedStudents = $this->input->post('selectedStudents'); if (!sizeof($selectedStudents)) { $this->session->set_flashdata('errorMessage', "Please Select At Least One Student To Assign E-Content."); $this->assignNewEContent(); } else { $newEContentStudentAssign = array(); $newEContentSchedule = array( 'ecm_id' => trim($this->input->post("econtent")), 'ecsm_start_date' => date("Y-m-d 00:00:00", strtotime(str_replace('/', '-', trim($this->input->post("scheduleStartDate"))))), 'ecsm_end_date' => date("Y-m-d 23:59:59", strtotime(str_replace('/', '-', trim($this->input->post("scheduleEndDate"))))), 'ecsm_note' => trim(addslashes($this->input->post("note"))), 'ecsm_scheduled_by' => $this->session->userdata("adminData")["smember_id"], 'ecsm_scheduled_on' => date("Y-m-d H:i:s"), 'ecsm_schedule_updated_on' => date("Y-m-d H:i:s") ); $this->db->trans_start(); $schedule_id = $this->TaskAndQuizManagement->createNewEContentSchedule($newEContentSchedule); for ($i = 0; $i < sizeof($selectedStudents); $i++) { array_push($newEContentStudentAssign, array( 'ecsm_id' => $schedule_id, 'tspi_id' => $selectedStudents[$i] )); } if (sizeof($newEContentStudentAssign)) { if ($this->TaskAndQuizManagement->createNewEContentAssignmentMulti($newEContentStudentAssign)) { $this->session->set_flashdata('successMessage', 'E-Content Assigned Successfully.'); redirect("admin/TasksAndQuizzes/eContentAssigments"); } else { $this->session->set_flashdata('errorMessage', 'E-Content Assignment To Student Failed Due To Some Errors. Try Later.'); redirect(current_url()); } } else { $this->session->set_flashdata('errorMessage', 'E-Content Assignment Failed! No Students Selected. Please Select Student(s).'); redirect(current_url()); } } } else { redirect("admin/"); } } public function editEContentAssignment($ecsm_id) { if ($this->sessionvalidator->isLoggedIn()) { $viewData['econtentScheduleInfo'] = $this->TaskAndQuizManagement->getEContentScheduleInfoBy($ecsm_id)->result()[0]; $viewData['sessions'] = $this->SessionManagement->getNonDeletedActiveSessions()->result(); $viewData['subjects'] = $this->SubjectManagement->getAllotedSubjectBy($this->session->userdata("adminData")["smember_id"], $this->SessionManagement->getCurrentSessionInfo()->result()[0]->session_id, '')->result(); $this->load->view('admin/quizzes/editEContentAssignment', $viewData); } else { redirect("admin/"); } } public function updateEContentAssignment() { if ($this->sessionvalidator->isLoggedIn()) { $ecsm_id = $this->input->post("ecsm_id"); $this->form_validation->set_rules('session', 'Session', 'trim|required', array('required' => 'Please Select Any Session.')); $this->form_validation->set_rules('subject', 'Start Date', 'trim|required', array('required' => 'Please Select Any Subject.')); $this->form_validation->set_rules('econtent', 'End Date', 'trim|required', array('required' => 'Please Select Any E-Content.')); $this->form_validation->set_rules('scheduleStartDate', 'Start Date', 'trim|required', array('required' => 'Please Enter/Choose Start Date.')); $this->form_validation->set_rules('scheduleEndDate', 'End Date', 'trim|required', array('required' => 'Please Enter/Choose End Date.')); $selectedStudents = $this->input->post('selectedStudents'); if (!sizeof($selectedStudents)) { $this->session->set_flashdata('errorMessage', "Please Select At Least One Student To Assign E-Content."); $this->editEContentAssignment($ecsm_id); } else { $newEContentStudentAssign = array(); $eContentSchedule = array( 'ecsm_id' => $ecsm_id, 'ecsm_start_date' => date("Y-m-d 00:00:00", strtotime(str_replace('/', '-', trim($this->input->post("scheduleStartDate"))))), 'ecsm_end_date' => date("Y-m-d 23:59:59", strtotime(str_replace('/', '-', trim($this->input->post("scheduleEndDate"))))), 'ecsm_note' => trim(addslashes($this->input->post("note"))), 'ecsm_schedule_updated_on' => date("Y-m-d H:i:s") ); $this->db->trans_start(); if ($this->TaskAndQuizManagement->updateEContentScheduleInfo($eContentSchedule)) { $this->TaskAndQuizManagement->deleteEContentStudentAssignment($ecsm_id); for ($i = 0; $i < sizeof($selectedStudents); $i++) { array_push($newEContentStudentAssign, array( 'ecsm_id' => $ecsm_id, 'tspi_id' => $selectedStudents[$i] )); } if ($this->TaskAndQuizManagement->createNewEContentAssignmentMulti($newEContentStudentAssign)) { $this->db->trans_complete(); $this->session->set_flashdata('successMessage', 'E-Content Assignment Updated Successfully.'); redirect("admin/TasksAndQuizzes/eContentAssigments"); } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Updating Assignment Info. Try Later.'); redirect(current_url()); } } else { $this->session->set_flashdata('errorMessage', 'Assignment Failed! No Students Selected For Assigning. Please Select Student(s).'); redirect(current_url()); } } } else { redirect("admin/"); } } public function toggleEContentScheduleStatus($ecsm_id, $toUpdateStatus) { if ($this->sessionvalidator->isLoggedIn()) { $eContentScheduleUpdateData = array( 'ecsm_id' => $ecsm_id, 'ecsm_schedule_updated_on' => date("Y-m-d H:i:s"), 'ecsm_active_status' => $toUpdateStatus ); if ($this->TaskAndQuizManagement->updateEContentScheduleInfo($eContentScheduleUpdateData)) { $this->session->set_flashdata('successMessage', 'E-Content Schedule Status Updated Successfully.'); redirect("admin/TasksAndQuizzes/eContentAssigments"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Updating E-Content Schedule Status. Try Later.'); redirect(current_url()); } } else { redirect("admin/"); } } public function deleteEContentSchedule($ecsm_id) { if ($this->sessionvalidator->isLoggedIn()) { $eContentScheduleUpdateData = array( 'ecsm_id' => $ecsm_id, 'ecsm_schedule_updated_on' => date("Y-m-d H:i:s"), 'ecsm_delete_status' => 'T' ); if ($this->TaskAndQuizManagement->updateEContentScheduleInfo($eContentScheduleUpdateData)) { $this->session->set_flashdata('successMessage', 'E-Content Schedule Deleted Successfully.'); redirect("admin/TasksAndQuizzes/eContentAssigments"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Deleting E-Content Schedule. Try Later.'); redirect(current_url()); } } else { redirect("admin/"); } } }