function index() { if ($this->qa_libs->logged_in()) { $data = array('category' => $this->qa_model->all('category', 'id_category ASC'), 'tag' => $this->qa_model->all('tag', 'id_tag ASC')); if (!empty($data['category'] || $data['tag'])) { $this->form_validation->set_rules('subject', 'Description', 'trim|required|xss_clean'); $this->form_validation->set_rules('category_id', 'Description', 'trim|required|xss_clean'); $this->form_validation->set_rules('description_question', 'Description', 'trim|required|xss_clean'); if ($this->form_validation->run() == TRUE) { $insert = array('user_id' => $this->qa_libs->id_user(), 'subject' => $this->input->post('subject', TRUE), 'category_id' => $this->input->post('category_id', TRUE), 'description_question' => $this->input->post('description_question', TRUE), 'question_date' => date('Y-m-d H:i:s'), 'url_question' => qa_url($this->qa_libs->last_question(), $this->input->post('subject', TRUE))); $this->qa_model->insert('question', $insert); $question = $this->qa_model->firt_or_last('question', 'id_question DESC'); foreach ($question as $q) { foreach ($this->input->post('id_tag', TRUE) as $tag) { $tags = array('question_id' => $q->id_question, 'tag_id' => $tag); $this->qa_model->insert('question_tag', $tags); } } redirect('question/' . $insert['url_question']); } else { $this->_render('question/create', $data); } } else { $data = array('messages' => 'Seseorang Administrator harus menambahkan data Category dan Tag untuk memulai sebuah pertanyaan.'); $this->_render('independent/messages', $data); } } else { $data = array('messages' => 'Dibutuhkan login untuk memulai bertanya.'); $this->_render('independent/messages', $data); } }
function a302344c485385d66b3c1736be5213fb07e7fbb8($str = NULL, $action = NULL, $num = NULL) { if (!empty($str)) { $data = array('question' => $this->_get($str), 'question_tag' => $this->_question_tag($str)); if (!empty($data['question'])) { if (!empty($str) && empty($action)) { foreach ($data['question'] as $question) { $data['answer'] = $this->qa_model->join2_where('answer', 'user', 'question', 'answer.user_id=user.id_user', 'answer.question_id=question.id_question', array('answer.question_id' => $question->id_question), 'answer.id_answer'); $data['comment_in_question'] = $this->qa_model->join2_where('comment', 'user', 'question', 'comment.user_id=user.id_user', 'comment.question_id=question.id_question', array('comment.question_id' => $question->id_question), 'comment.id_comment'); $data['count_vote'] = $this->qa_model->count_where2('vote', array('question_id' => $question->id_question), array('vote_for' => 'Up')) - $this->qa_model->count_where2('vote', array('question_id' => $question->id_question), array('vote_for' => 'Down')); $this->qa_model->viewers('question', 'viewers', array('id_question' => $question->id_question)); if ($this->qa_libs->logged_in()) { if ($question->user_id != $this->qa_libs->id_user()) { $this->form_validation->set_rules('description_answer', 'Description', 'trim|required|xss_clean'); $this->form_validation->set_error_delimiters('<p>', '</p>'); if ($this->form_validation->run() == TRUE) { $insert = array('user_id' => $this->qa_libs->id_user(), 'question_id' => $question->id_question, 'description_answer' => $this->input->post('description_answer', TRUE), 'answer_date' => date('Y-m-d H:i:s')); $this->qa_model->insert('answer', $insert); redirect($this->uri->segment(1) . '/' . $question->url_question); } else { $this->_render('question/get', $data); } } else { $this->_render('question/get', $data); } } else { $this->_render('question/get', $data); } } } elseif (!empty($str && $action) && empty($num)) { if ($this->qa_libs->logged_in()) { if ($action === 'update') { foreach ($data['question'] as $question) { if ($question->user_id != $this->qa_libs->id_user()) { show_404(); return FALSE; } else { $this->form_validation->set_rules('subject', 'Description', 'trim|required|xss_clean'); $this->form_validation->set_rules('category_id', 'Description', 'trim|required|xss_clean'); $this->form_validation->set_rules('description_question', 'Description', 'trim|required|xss_clean'); $this->form_validation->set_error_delimiters('<p>', '</p>'); if ($this->form_validation->run() == TRUE) { $update = array('subject' => $this->input->post('subject', TRUE), 'category_id' => $this->input->post('category_id', TRUE), 'description_question' => $this->input->post('description_question', TRUE), 'question_update' => date('Y-m-d H:i:s'), 'url_question' => qa_url($question->id_question, $this->input->post('subject', TRUE))); $this->qa_model->update('question', $update, array('id_question' => $question->id_question)); $this->qa_model->delete('question_tag', array('question_id' => $question->id_question)); $loop_question = $this->qa_model->get('question', array('id_question' => $question->id_question)); foreach ($loop_question as $lq) { foreach ($this->input->post('id_tag', TRUE) as $tag) { $tags = array('question_id' => $lq->id_question, 'tag_id' => $tag); $this->qa_model->insert('question_tag', $tags); } } redirect($this->uri->segment(1) . '/' . $update['url_question']); } else { $data['category'] = $this->qa_model->all('category', 'id_category ASC'); $data['tag'] = $this->qa_model->all('tag', 'id_tag ASC'); $this->_render('question/update', $data); } } } } elseif ($action === 'delete') { foreach ($data['question'] as $question) { if ($question->user_id != $this->qa_libs->id_user()) { show_404(); return FALSE; } else { $this->qa_model->delete('question', array('url_question' => $str)); redirect(); } } } elseif ($action === 'vq_up') { foreach ($data['question'] as $question) { if ($question->user_id != $this->qa_libs->id_user()) { $check_exist = $this->qa_model->get_two('vote', array('user_id' => $this->qa_libs->id_user()), array('question_id' => $question->id_question)); if ($check_exist == TRUE) { foreach ($check_exist as $vote) { if ($vote->vote_for == 'Down') { $update_vote = array('vote_update' => date('Y-m-d H:i:s'), 'vote_for' => 'Up'); $this->qa_model->update('vote', $update_vote, array('id_vote' => $vote->id_vote)); redirect($this->uri->segment(1) . '/' . $this->uri->segment(2)); } else { $data = array('messages' => 'Anda sudah memberikan Vote UP pada pertanyaan ini.'); $this->_render('independent/messages', $data); } } } else { $vote = array('user_id' => $this->qa_libs->id_user(), 'question_id' => $question->id_question, 'vote_in' => 'Question', 'vote_date' => date('Y-m-d H:i:s'), 'vote_for' => 'Up'); $this->qa_model->insert('vote', $vote); redirect($this->uri->segment(1) . '/' . $this->uri->segment(2)); } } else { $data = array('messages' => 'Permission denied!'); $this->_render('independent/messages', $data); } } } elseif ($action === 'vq_down') { foreach ($data['question'] as $question) { if ($question->user_id != $this->qa_libs->id_user()) { $check_exist = $this->qa_model->get_two('vote', array('user_id' => $this->qa_libs->id_user()), array('question_id' => $question->id_question)); if ($check_exist == TRUE) { foreach ($check_exist as $vote) { if ($vote->vote_for == 'Up') { $update_vote = array('vote_update' => date('Y-m-d H:i:s'), 'vote_for' => 'Down'); $this->qa_model->update('vote', $update_vote, array('id_vote' => $vote->id_vote)); redirect($this->uri->segment(1) . '/' . $this->uri->segment(2)); } else { $data = array('messages' => 'Anda sudah memberikan Vote DOWN pada pertanyaan ini.'); $this->_render('independent/messages', $data); } } } else { $vote = array('user_id' => $this->qa_libs->id_user(), 'question_id' => $question->id_question, 'vote_in' => 'Question', 'vote_date' => date('Y-m-d H:i:s'), 'vote_for' => 'Down'); $this->qa_model->insert('vote', $vote); redirect($this->uri->segment(1) . '/' . $this->uri->segment(2)); } } else { $data = array('messages' => 'Permission denied!'); $this->_render('independent/messages', $data); } } } else { show_404(); return FALSE; } } else { show_404(); return FALSE; } } elseif (!empty($str && $action && $num)) { if ($this->qa_libs->logged_in()) { if ($action === 'answer') { foreach ($data['question'] as $question) { if ($question->user_id === $this->qa_libs->id_user()) { $check_exist = $this->qa_model->get_two('answer', array('id_answer' => $num), array('question_id' => $question->id_question)); if (!empty($check_exist)) { $update_question = array('answer_id' => $num); $this->qa_model->update('question', $update_question, array('id_question' => $question->id_question)); redirect($this->uri->segment(1) . '/' . $this->uri->segment(2)); } else { show_404(); return FALSE; } } else { show_404(); return FALSE; } } } elseif ($action === 'va_up') { foreach ($data['question'] as $question) { $answer = $this->qa_model->get_two('answer', array('id_answer' => $num), array('question_id' => $question->id_question)); if ($answer != FALSE) { foreach ($answer as $ans) { if ($ans->user_id != $this->qa_libs->id_user()) { $check_exist = $this->qa_model->get_two('vote', array('user_id' => $this->qa_libs->id_user()), array('answer_id' => $num)); if ($check_exist == TRUE) { foreach ($check_exist as $vote) { if ($vote->vote_for == 'Down') { $update_vote = array('vote_update' => date('Y-m-d H:i:s'), 'vote_for' => 'Up'); $this->qa_model->update('vote', $update_vote, array('id_vote' => $vote->id_vote)); redirect($this->uri->segment(1) . '/' . $this->uri->segment(2)); } else { $data = array('messages' => 'Anda sudah memberikan Vote UP pada pertanyaan ini.'); $this->_render('independent/messages', $data); } } } else { $vote = array('user_id' => $this->qa_libs->id_user(), 'answer_id' => $num, 'vote_in' => 'Answer', 'vote_date' => date('Y-m-d H:i:s'), 'vote_for' => 'Up'); $this->qa_model->insert('vote', $vote); redirect($this->uri->segment(1) . '/' . $this->uri->segment(2)); } } else { $data = array('messages' => 'Permission denied!'); $this->_render('independent/messages', $data); } } } else { show_404(); return FALSE; } } } elseif ($action === 'va_down') { foreach ($data['question'] as $question) { $answer = $this->qa_model->get_two('answer', array('id_answer' => $num), array('question_id' => $question->id_question)); if ($answer != FALSE) { foreach ($answer as $ans) { if ($ans->user_id != $this->qa_libs->id_user()) { $check_exist = $this->qa_model->get_two('vote', array('user_id' => $this->qa_libs->id_user()), array('answer_id' => $num)); if ($check_exist == TRUE) { foreach ($check_exist as $vote) { if ($vote->vote_for == 'Up') { $update_vote = array('vote_update' => date('Y-m-d H:i:s'), 'vote_for' => 'Down'); $this->qa_model->update('vote', $update_vote, array('id_vote' => $vote->id_vote)); redirect($this->uri->segment(1) . '/' . $this->uri->segment(2)); } else { $data = array('messages' => 'Anda sudah memberikan Vote DOWN pada pertanyaan ini.'); $this->_render('independent/messages', $data); } } } else { $vote = array('user_id' => $this->qa_libs->id_user(), 'answer_id' => $num, 'vote_in' => 'Answer', 'vote_date' => date('Y-m-d H:i:s'), 'vote_for' => 'Down'); $this->qa_model->insert('vote', $vote); redirect($this->uri->segment(1) . '/' . $this->uri->segment(2)); } } else { $data = array('messages' => 'Permission denied!'); $this->_render('independent/messages', $data); } } } else { show_404(); return FALSE; } } } elseif ($action === 'cq') { $data['comment_question'] = $this->qa_model->join_where('question', 'user', 'question.user_id=user.id_user', array('id_question' => $num), 'question.id_question'); if (!empty($data['comment_question'])) { $this->form_validation->set_rules('description_comment', 'Description', 'trim|required|xss_clean'); $this->form_validation->set_error_delimiters('<p>', '</p>'); if ($this->form_validation->run() == TRUE) { $cq = array('user_id' => $this->qa_libs->id_user(), 'question_id' => $num, 'comment_in' => 'Question', 'description_comment' => $this->input->post('description_comment', TRUE), 'comment_date' => date('Y-m-d H:i:s')); $this->qa_model->insert('comment', $cq); redirect($this->uri->segment(1) . '/' . $this->uri->segment(2)); } else { $this->_render('question/comment_question', $data); } } else { show_404(); return FALSE; } } elseif ($action === 'ca') { $data['comment_answer'] = $this->qa_model->join2_where('answer', 'user', 'question', 'answer.user_id=user.id_user', 'answer.question_id=question.id_question', array('id_answer' => $num), 'answer.id_answer'); if (!empty($data['comment_answer'])) { $this->form_validation->set_rules('description_comment', 'Description', 'trim|required|xss_clean'); $this->form_validation->set_error_delimiters('<p>', '</p>'); if ($this->form_validation->run() == TRUE) { $ca = array('user_id' => $this->qa_libs->id_user(), 'answer_id' => $num, 'comment_in' => 'Answer', 'description_comment' => $this->input->post('description_comment', TRUE), 'comment_date' => date('Y-m-d H:i:s')); $this->qa_model->insert('comment', $ca); redirect($this->uri->segment(1) . '/' . $this->uri->segment(2)); } else { $this->_render('question/comment_answer', $data); } } else { show_404(); return FALSE; } } elseif ($action === 'ua') { $data['update_answer'] = $this->qa_model->join2_where2('answer', 'user', 'question', 'answer.user_id=user.id_user', 'answer.question_id=question.id_question', array('id_answer' => $num), array('answer.user_id' => $this->qa_libs->id_user()), 'answer.id_answer'); if (!empty($data['update_answer'])) { $this->form_validation->set_rules('description_answer', 'Description', 'trim|required|xss_clean'); $this->form_validation->set_error_delimiters('<p>', '</p>'); if ($this->form_validation->run() == TRUE) { $ua = array('description_answer' => $this->input->post('description_answer', TRUE), 'answer_update' => date('Y-m-d H:i:s')); $this->qa_model->update('answer', $ua, array('id_answer' => $num)); redirect($this->uri->segment(1) . '/' . $this->uri->segment(2)); } else { $this->_render('question/update_answer', $data); } } else { show_404(); return FALSE; } } elseif ($action === 'uc') { $data['update_comment'] = $this->qa_model->join_where2('comment', 'user', 'comment.user_id=user.id_user', array('id_comment' => $num), array('comment.user_id' => $this->qa_libs->id_user()), 'comment.id_comment'); if (!empty($data['update_comment'])) { $this->form_validation->set_rules('description_comment', 'Description', 'trim|required|xss_clean'); $this->form_validation->set_error_delimiters('<p>', '</p>'); if ($this->form_validation->run() == TRUE) { $uc = array('description_comment' => $this->input->post('description_comment', TRUE), 'comment_update' => date('Y-m-d H:i:s')); $this->qa_model->update('comment', $uc, array('id_comment' => $num)); redirect($this->uri->segment(1) . '/' . $this->uri->segment(2)); } else { $this->_render('question/update_comment', $data); } } else { show_404(); return FALSE; } } elseif ($action === 'da') { $data['delete_answer'] = $this->qa_model->join2_where2('answer', 'user', 'question', 'answer.user_id=user.id_user', 'answer.question_id=question.id_question', array('id_answer' => $num), array('answer.user_id' => $this->qa_libs->id_user()), 'answer.id_answer'); if (!empty($data['delete_answer'])) { $this->qa_model->delete('answer', array('id_answer' => $num)); redirect($this->uri->segment(1) . '/' . $this->uri->segment(2)); } else { show_404(); return FALSE; } } elseif ($action === 'dc') { $data['delete_comment'] = $this->qa_model->join_where2('comment', 'user', 'comment.user_id=user.id_user', array('id_comment' => $num), array('comment.user_id' => $this->qa_libs->id_user()), 'comment.id_comment'); if (!empty($data['delete_comment'])) { $this->qa_model->delete('comment', array('id_comment' => $num)); redirect($this->uri->segment(1) . '/' . $this->uri->segment(2)); } else { show_404(); return FALSE; } } else { show_404(); return FALSE; } } else { show_404(); return FALSE; } } else { show_404(); return FALSE; } } else { show_404(); return FALSE; } } else { show_404(); return FALSE; } }