https://t.me/RX1948
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //var/www/blue-sky.co.id/public_html/application/controllers/admin/Facilities.php
<?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">&raquo;</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);
	}
}

https://t.me/RX1948 - 2025