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 : /proc/self/root/var/www/laciasmara.com/public_html/shop/application/controllers/admin/ |
Upload File : |
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class Settings extends Admin_Controller { function __construct() { parent::__construct(); $this->load->helper('form'); $this->load->model('configuration_m'); $this->load->model('User_m'); } public function index() { $data['userdata'] = $this->session->userdata(); $data['title'] = 'Konfigurasi Website | Laciasmara'; $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/settings/index'); $this->load->view('admin_new/layouts/footer'); } public function website() { $data['userdata'] = $this->session->userdata(); $data['title'] = 'Konfigurasi Website | Laciasmara'; $data['website_configuration'] = $this->configuration_m->get_configuration(); $data['bank_information'] = $this->configuration_m->get_bank_information(); $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/settings/index'); $this->load->view('admin_new/layouts/footer'); } public function users() { $data['userdata'] = $this->session->userdata(); $data['title'] = 'Pengaturan Users | Laciasmara'; $data['users'] = $this->User_m->get_admin_users(); $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/settings/users/index'); $this->load->view('admin_new/layouts/footer'); } function add_user() { $data['userdata'] = $this->session->userdata(); $data['title'] = 'Tambah User | Laciasmara'; $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/settings/users/add'); $this->load->view('admin_new/layouts/footer'); } public function create_admin_user() { // Get form data $data = $this->input->post(); // Validate required fields if (empty($data['name']) || empty($data['email']) || empty($data['password']) || empty($data['role'])) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'Semua field wajib diisi'); redirect('admin/settings/users/add'); return; } // Check if email already exists $existing_user = $this->db->where('email', $data['email'])->get('admin_users')->row(); if ($existing_user) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'Email udah dipakai, pakai yang lain ya'); redirect('admin/settings/users/add'); return; } $active_status = 'inactive'; // Default to inactive if (isset($data['active']) && $data['active'] == '1') { $active_status = 'active'; } $user_data = [ 'name' => $data['name'], 'email' => $data['email'], 'password' => password_hash($data['password'], PASSWORD_BCRYPT), // Hashing password 'role' => $data['role'], 'status' => $active_status, 'created_at' => date('Y-m-d H:i:s') ]; // Begin transaction $this->db->trans_begin(); try { $this->db->insert('admin_users', $user_data); if ($this->db->trans_status() === FALSE) { throw new Exception('Gagal menyimpan data user'); } $this->db->trans_commit(); $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'User berhasil ditambahkan!'); redirect('admin/settings/users'); } catch (Exception $e) { $this->db->trans_rollback(); $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); redirect('admin/settings/users/add'); } } function edit_user($id_user = NULL) { if (!$id_user) { redirect('admin/settings/users'); } $data['userdata'] = $this->session->userdata(); $data['title'] = 'Ubah User | Laciasmara'; $data['user'] = $this->User_m->get_admin_user_by_id($id_user); if (!$data['user']) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'User tidak ditemukan. coba lagi'); redirect(base_url('admin/settings/users')); return; } $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/settings/users/edit'); $this->load->view('admin_new/layouts/footer'); } public function update_admin_user($id_user) { $data = $this->input->post(); $active_status = 'inactive'; // Default to inactive if (isset($data['active']) && $data['active'] == '1') { $active_status = 'active'; } $user_data = [ 'name' => $data['name'], 'email' => $data['email'], 'password' => password_hash($data['password'], PASSWORD_BCRYPT), 'role' => $data['role'], 'status' => $active_status, 'created_at' => date('Y-m-d H:i:s') ]; $this->db->trans_begin(); try { $this->db->where('id', $id_user); $this->db->update('admin_users', $user_data); if ($this->db->trans_status() === FALSE) { throw new Exception('Gagal memperbarui data halaman'); } $this->db->trans_commit(); $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'User berhasil diperbarui!'); redirect('admin/settings/users'); } catch (Exception $e) { $this->db->trans_rollback(); $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); redirect('admin/settings/users/edit/' . $id_user); } } public function update_configuration() { $this->db->trans_start(); $website_name = $this->input->post('website_name', true); $website_email = $this->input->post('website_email', true); $phone = $this->input->post('website_phone', true); $meta_title = $this->input->post('meta_title', true); $meta_description = $this->input->post('meta_description', true); $bank_information = $this->input->post('bank_information', true); try { $data = [ 'phone' => $phone, 'website_name' => $website_name, 'from_email' => $website_email, 'browser_title' => $meta_title, 'meta_description' => $meta_description, ]; $this->db->where('id_configuration', 1); $this->db->update('configuration', $data); if (!empty($bank_information)) { foreach ($bank_information as $bank) { // Pastikan semua field yang diperlukan ada dan tidak kosong if (empty($bank['bank_name']) || empty($bank['account_number']) || empty($bank['account_holder'])) { continue; // Lewati jika ada field yang kosong } // Data bank yang akan diupdate $bank_data = [ 'bank_name' => $bank['bank_name'], 'account_number' => $bank['account_number'], 'account_holder' => $bank['account_holder'], 'updated_at' => date('Y-m-d H:i:s') ]; // Update data bank berdasarkan id_bank if (isset($bank['id_bank']) && !empty($bank['id_bank'])) { $this->db->where('id_bank', $bank['id_bank']); $this->db->update('bank_accounts', $bank_data); } } } if ($this->db->trans_status() === false) { throw new Exception('Database error occurred'); } $this->db->trans_commit(); // Set flashdata dan redirect $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Konfigurasi website berhasil diperbarui!'); redirect(base_url('admin/settings/website')); } catch (Exception $e) { $this->db->trans_rollback(); // Set flashdata untuk error dan redirect $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); redirect(base_url('admin/settings/website')); } } }