Server : Apache/2.4.18 (Ubuntu) System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64 User : oppastar ( 1041) PHP Version : 7.0.33-0ubuntu0.16.04.15 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, Directory : /var/www/blue-sky.co.id/public_html/application/controllers/admin/ |
Upload File : |
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Facilities extends Admin_Controller { function __construct() { parent::__construct(); //admin role module check $this->check_admin_role('facilities'); //method from Admin_controller $this->load->model('facilities_m'); $this->load->model('hotels_m'); } //this is to list all facilities public function index() { // Get hotel_id from session $hotel_id = $this->session->userdata('hotel_id'); //pagination $this->load->library('pagination'); $config['base_url'] = base_url() . 'admin/facilities/index'; // Count facilities for current hotel only $this->db->where('hotel_id', $hotel_id); $config['total_rows'] = $this->db->count_all_results('facilities'); $config['per_page'] = 10; $config['uri_segment'] = 4; $choice = $config['total_rows'] / $config['per_page']; $config['num_links'] = floor($choice); // Integrate Bootstrap pagination $config['first_link'] = 'First'; $config['last_link'] = 'Last'; $config['next_link'] = 'Next'; $config['prev_link'] = 'Prev'; $config['full_tag_open'] = '<div class="pagging text-center"><nav><ul class="pagination justify-content-center">'; $config['full_tag_close'] = '</ul></nav></div>'; $config['num_tag_open'] = '<li class="page-item"><span class="page-link">'; $config['num_tag_close'] = '</span></li>'; $config['cur_tag_open'] = '<li class="page-item active"><span class="page-link">'; $config['cur_tag_close'] = '<span class="sr-only">(current)</span></span></li>'; $config['next_tag_open'] = '<li class="page-item"><span class="page-link">'; $config['next_tagl_close'] = '<span aria-hidden="true">»</span></span></li>'; $config['prev_tag_open'] = '<li class="page-item"><span class="page-link">'; $config['prev_tagl_close'] = '</span></li>'; $config['first_tag_open'] = '<li class="page-item"><span class="page-link">'; $config['first_tagl_close'] = '</span></li>'; $config['last_tag_open'] = '<li class="page-item"><span class="page-link">'; $config['last_tagl_close'] = '</span></li>'; $this->pagination->initialize($config); $page = ($this->uri->segment(4)) ? $this->uri->segment(4) : 0; $this->data['facilities'] = $this->facilities_m->get_facilities_by_hotel($hotel_id, $config['per_page'], $page); $this->data['pagination'] = $this->pagination->create_links(); //get hotels for dropdown $this->data['hotels'] = $this->hotels_m->get(); $this->data['facility_types'] = $this->facilities_m->get_facility_types(); //load view $this->data['subview'] = 'admin/facilities/index'; $this->load->view('admin/templates/header', $this->data_header); $this->load->view('admin/_layout_main', $this->data); $this->load->view('admin/templates/footer'); } //this is to add new facility or edit existing facility public function edit($id = NULL) { // Get hotel_id from session $hotel_id = $this->session->userdata('hotel_id'); //fetch facility or set a new one if($id) { $this->data['facility'] = $this->facilities_m->get($id); $this->data['facility'] || $this->data['errors'][] = 'Facility could not be found'; } else { $this->data['facility'] = $this->facilities_m->get_new(); // Set hotel_id from session for new facilities $this->data['facility']->hotel_id = $hotel_id; } //get hotels for dropdown $this->data['hotels'] = $this->hotels_m->get(); $this->data['facility_types'] = $this->facilities_m->get_facility_types(); //set up the form $rules = $this->facilities_m->_rules; $this->form_validation->set_rules($rules); //process the form if($this->form_validation->run() == TRUE) { $data = $this->facilities_m->array_from_post(array( 'hotel_id', 'type', 'hero_title', 'intro_title', 'intro_subtitle', 'facility_title', 'facility_subtitle', 'facility1_title', 'facility1_subtitle', 'facility2_title', 'facility2_subtitle', 'facility3_title', 'facility3_subtitle', 'facility4_title', 'facility4_subtitle', 'facility5_title', 'facility5_subtitle', 'facility6_title', 'facility6_subtitle' )); //handle file uploads $this->_handle_image_upload($data, 'hero_image'); $this->_handle_image_upload($data, 'intro_image'); $this->_handle_image_upload($data, 'facility1_image'); $this->_handle_image_upload($data, 'facility2_image'); $this->_handle_image_upload($data, 'facility3_image'); $this->_handle_image_upload($data, 'facility4_image'); $this->_handle_image_upload($data, 'facility5_image'); $this->_handle_image_upload($data, 'facility6_image'); $this->_handle_image_upload($data, 'gallery1_image'); $this->_handle_image_upload($data, 'gallery2_image'); $this->_handle_image_upload($data, 'gallery3_image'); $this->_handle_image_upload($data, 'gallery4_image'); $this->_handle_image_upload($data, 'gallery5_image'); $this->_handle_image_upload($data, 'gallery6_image'); $this->_handle_image_upload($data, 'gallery7_image'); $this->_handle_image_upload($data, 'gallery8_image'); $this->_handle_image_upload($data, 'gallery9_image'); $this->_handle_image_upload($data, 'gallery10_image'); $this->facilities_m->save($data, $id); $this->session->set_flashdata('success', 'Facility saved successfully.'); if($id) { redirect('admin/facilities/edit/' . $id); } else { redirect('admin/facilities'); } } //load view $this->data['subview'] = 'admin/facilities/edit'; $this->load->view('admin/templates/header', $this->data_header); $this->load->view('admin/_layout_main', $this->data); $this->load->view('admin/templates/footer'); } //delete facility public function delete($id) { $this->facilities_m->delete($id); $this->session->set_flashdata('success', 'Facility deleted successfully.'); redirect('admin/facilities'); } //private function to handle image uploads private function _handle_image_upload(&$data, $field_name) { if (!empty($_FILES[$field_name]['name'])) { $config['upload_path'] = './uploads/facilities/'; $config['allowed_types'] = 'gif|jpg|png|jpeg'; $config['max_size'] = 2048; // 2MB // $config['encrypt_name'] = TRUE; // Create directory if it doesn't exist // if (!is_dir($config['upload_path'])) { // mkdir($config['upload_path'], 0755, true); // } $this->load->library('upload', $config); if ($this->upload->do_upload($field_name)) { $upload_data = $this->upload->data(); $data[$field_name] = $upload_data['file_name']; } else { $this->session->set_flashdata($field_name, $this->upload->display_errors()); } } } //delete image function public function delete_image($id, $field_name, $filename) { // Delete file from server $file_path = './uploads/facilities/' . $filename; if (file_exists($file_path)) { unlink($file_path); } // Update database to remove filename $data = array($field_name => ''); $this->facilities_m->save($data, $id); $this->session->set_flashdata('success', 'Image deleted successfully.'); redirect('admin/facilities/edit/' . $id); } }