File manager - Edit - /home/wwwroot/camplus.hk/master.camplus.hk/public_html/application/modules/event_booking/models/Forms_model.php
Back
<?php Class Forms_Model extends CI_Model{ function get_enum_values( $table, $field ) { $type = $this->db->query( "SHOW COLUMNS FROM {$table} WHERE Field = '{$field}'" )->row( 0 )->Type; preg_match('/^enum\((.*)\)$/', $type, $matches); foreach( explode(',', $matches[1]) as $value ) { $enum[] = trim( $value, "'" ); } return $enum; } function get_forms() { $allForms=$this->db->get_where('forms')->result_array(); $allUser=$this->db->get_where('users')->result_array(); foreach ($allForms as $key => $form){ if(!is_null($form['approver'])){ $approverList=array(); $approverList=explode(',', $form['approver']); if(is_null($approverList)) array_push($approverList, $form['approver']); $approverNameList=array(); foreach ($approverList as $approver){ foreach($allUser as $user){ if($user['id']==$approver) array_push($approverNameList, $user['username']); } } $allForms[$key]['approvers']=implode(', ', $approverNameList); } else $allForms[$key]['approvers']=NULL; } return $allForms; } function addForm($data) { pr($data); if(!isset($data['need_approval']))$data['need_approval'] = 0; if(!isset($data['is_enabled']))$data['is_enabled'] = 0; if(empty($data['approver'])) { $data['approver'] = NULL; }else{ $approverList=implode(',', $data['approver']); $data['approver']=$approverList; } $this->db->insert('forms',array('title' => $data['title'],'is_enabled' => $data['is_enabled'],'deadline' => $data['deadline'],'need_approval' => $data['need_approval'],'approver' => $data['approver'])); $formId = $this->db->insert_id(); //Add Questions $rank=0; foreach ($data['questions'] as $key => $question) { $rank++; $questionData = array(); $questionData['question'] = $question['question']; $questionData['description'] = $question['description']; $questionData['form_id'] = $formId; $questionData['placeholder'] = $question['placeholder']; $questionData['grid_table_title'] = $question['grid_table_title']; $questionData['question_type'] = $question['question_type']; $questionData['grid_count'] = $question['grid_count']; $questionData['rank'] = $rank; if (isset($question['color'])) $questionData['color'] = $question['color']; if (isset($question['font_size'])) $questionData['font_size'] = $question['font_size']; $this->db->set('added_on', 'NOW()', FALSE); $this->db->insert('form_has_questions',$questionData); $question_id = $this->db->insert_id(); if(isset($question['options'])) { foreach ($question['options'] as $option) { $optionData = array(); $optionData['question_id'] = $question_id; $optionData['option'] = $option; $this->db->insert('form_question_has_options',$optionData); } } if(isset($question['question_has_questions'])) { $q_rank = 0; foreach ($question['question_has_questions'] as $question_has_question) { $q_rank++; $question_has_questionData = array(); $question_has_question['question_id'] = $question_id; $question_has_question['question'] = $question_has_question['question']; $question_has_question['options'] = $question_has_question['options']; $question_has_question['is_remark'] = $question_has_question['is_remark']; if($question_has_question['remark_checkpoint']!='') $question_has_question['remark_checkpoint'] = substr($question_has_question['remark_checkpoint'],0,-1); else $question_has_question['remark_checkpoint'] = ''; $question_has_question['is_na'] = $question_has_question['is_na']; $question_has_question['rank'] = $q_rank; $this->db->insert('form_question_has_questions',$question_has_question); } } } return true; } function getForm($id){ $form = $this->db->get_where('forms',array('id' => $id))->row_array(); if(!empty($form)) { $this->db->select('form_has_questions.*,form_question_has_token.token as token'); $this->db->join('form_question_has_token','form_has_questions.id=form_question_has_token.question_id', 'left'); $this->db->order_by('rank'); $form['questions'] = $this->db->get_where('form_has_questions',array('form_id' => $id)) ->result_array(); foreach ($form['questions'] as $key => $question) { $form['questions'][$key]['options'] = $this->db->get_where('form_question_has_options',array('question_id' => $question['id']))->result_array(); $this->db->order_by('rank'); $form['questions'][$key]['question_has_questions'] = $this->db->get_where('form_question_has_questions',array('question_id' => $question['id']))->result_array(); } } return $form; } function editForm($data,$id) { $rank=0; $qrank=0; foreach ($data['questions'] as $key => $question) { $rank++; $questionData = array(); $questionData['question'] = $question['question']; $questionData['description'] = $question['description']; $questionData['form_id'] = $id; $questionData['placeholder'] = $question['placeholder']; $questionData['question_type'] = $question['question_type']; $questionData['grid_table_title'] = $question['grid_table_title']; $questionData['grid_count'] = $question['grid_count']; $questionData['rank'] = $rank; if (isset($question['color'])) $questionData['color'] = $question['color']; if ($question['font_size']!=0) $questionData['font_size'] = $question['font_size']; // log_message('debug',print_r($questionData)); //add action if($question['action'] == 'add') { $this->db->set('added_on', 'NOW()', FALSE); $this->db->insert('form_has_questions',$questionData); $question_id = $this->db->insert_id(); if(isset($question['options'])) { foreach ($question['options'] as $option) { $optionData = array(); $optionData['question_id'] = $question_id; $optionData['option'] = $option; $this->db->insert('form_question_has_options',$optionData); } } if(isset($question['token'])) { $tokenData = array(); $tokenData['question_id'] = $question_id; $tokenData['token'] = $question['token']; $this->db->insert('form_question_has_token',$tokenData); } if(isset($question['question_has_questions'])) { foreach ($question['question_has_questions'] as $question_has_question) { $q_rank++; $question_has_questionData = array(); $question_has_question['question_id'] = $question_id; $question_has_question['question'] = $question_has_question['question']; $question_has_question['options'] = $question_has_question['options']; $question_has_question['is_remark'] = $question_has_question['is_remark']; if($question_has_question['remark_checkpoint']!='') $question_has_question['remark_checkpoint'] = substr($question_has_question['remark_checkpoint'],0,-1); else $question_has_question['remark_checkpoint'] = ''; $question_has_question['is_na'] = $question_has_question['is_na']; $question_has_question['rank'] = $q_rank; $this->db->insert('form_question_has_questions',$question_has_question); } } } //edit action if($question['action'] == 'edit') { //$questionData['id'] = $question['id']; $question_id = $question['id']; $this->db->update('form_has_questions',$questionData,array('id' => $question['id'])); $this->db->delete('form_question_has_options',array('question_id' => $question_id)); $this->db->delete('form_question_has_questions',array('question_id' => $question_id)); $this->db->delete('form_question_has_token',array('question_id' => $question_id)); if(isset($question['options'])) { foreach ($question['options'] as $option) { $optionData = array(); $optionData['question_id'] = $question_id; $optionData['option'] = $option; $this->db->insert('form_question_has_options',$optionData); } } if(isset($question['token']) && $question['token']!="") { $tokenData = array(); $tokenData['question_id'] = $question_id; $tokenData['token'] = $question['token']; $this->db->insert('form_question_has_token',$tokenData); } if(isset($question['question_has_questions'])) { foreach ($question['question_has_questions'] as $question_has_question) { $q_rank++; $question_has_questionData = array(); $question_has_question['question_id'] = $question_id; $question_has_question['question'] = $question_has_question['question']; $question_has_question['options'] = $question_has_question['options']; $question_has_question['is_remark'] = $question_has_question['is_remark']; if($question_has_question['remark_checkpoint']!='') $question_has_question['remark_checkpoint'] = substr($question_has_question['remark_checkpoint'],0,-1); else $question_has_question['remark_checkpoint'] = ''; $question_has_question['is_na'] = $question_has_question['is_na']; $question_has_question['rank'] = $q_rank; $this->db->insert('form_question_has_questions',$question_has_question); } } } //delete action if($question['action'] == 'delete') { $question_id = $question['id']; $this->db->delete('form_has_questions',array('id' => $question['id'])); $this->db->delete('form_question_has_options',array('question_id' => $question_id)); $this->db->delete('form_question_has_questions',array('question_id' => $question_id)); } } if(!isset($data['is_enabled'])) $data['is_enabled'] = 0; if(!isset($data['need_approval'])){ $data['need_approval'] = 0; $data['approver'] = NULL; } else{ $approverList=implode(',', $data['approver']); $data['approver']=$approverList; } return $this->db->update('forms',array('title' => $data['title'],'need_approval' => $data['need_approval'],'approver' => $data['approver'],'is_enabled' => $data['is_enabled'],'deadline' => $data['deadline']),array('id' => $id)); } function deleteForm($id) { $questions = $this->db->get_where('form_has_questions',array('form_id' => $id))->result_array(); //pr($questions);exit; foreach ($questions as $key => $question) { $this->db->delete('form_has_questions',array('id' => $question['id'])); $this->db->delete('form_question_has_options',array('question_id' => $question['id'])); $this->db->delete('form_question_has_questions',array('question_id' => $question['id'])); } return $this->db->delete('forms',array('id' => $id)); } } ?>
| ver. 1.4 |
Github
|
.
| PHP 7.2.34 | Generation time: 0.27 |
proxy
|
phpinfo
|
Settings