|
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/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'));
}
}
}