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 Contents extends Admin_Controller { function __construct() { parent::__construct(); $this->load->model('configuration_m'); $this->load->model('brand_m'); $this->load->model('category_m'); $this->load->model('product_m'); $this->load->model('Footer_m'); $this->load->model('Banner_m'); $this->load->model('Page_m'); $this->load->helper('form'); } function footer() { $data['userdata'] = $this->session->userdata(); $data['categories'] = $this->Footer_m->get_all_categories(); $data['social_media'] = $this->Footer_m->get_social_media(); $data['payment_methods'] = $this->Footer_m->get_payment_methods(); $data['asmaradoor'] = $this->Footer_m->get_asmaradoor(); $data['footer_bottom'] = $this->Footer_m->get_footer_bottom(); $data['title'] = 'Kelola Footer | Laciasmara'; $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/contents/footer/index'); $this->load->view('admin_new/layouts/footer'); } function banners() { $data['userdata'] = $this->session->userdata(); $data['banners'] = $this->Banner_m->get_all_banners(); $data['title'] = 'Kelola Banner | Laciasmara'; $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/contents/banners/index'); $this->load->view('admin_new/layouts/footer'); } function flying_banners() { $data['userdata'] = $this->session->userdata(); $data['flying_banners'] = $this->Banner_m->get_all_flying_banners(); $data['title'] = 'Kelola Flying Banner | Laciasmara'; $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/contents/flying_banners/index'); $this->load->view('admin_new/layouts/footer'); } function add_flying_banner() { $data['userdata'] = $this->session->userdata(); $data['title'] = 'Tambah Flying Banner | Laciasmara'; $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/contents/flying_banners/add'); $this->load->view('admin_new/layouts/footer'); } public function update_banner_order() { if (!$this->input->is_ajax_request()) { show_404(); } $items = json_decode($this->input->post('items'), true); // Validasi if (!is_array($items)) { echo json_encode([ 'status' => 'error', 'message' => 'Data tidak valid' ]); return; } $success = true; // Loop dan update order_number sesuai urutan array foreach ($items as $index => $id) { $update = $this->Banner_m->update_order($id, $index + 1); if (!$update) { $success = false; break; } } if ($success) { echo json_encode([ 'status' => 'success', 'message' => 'Urutan banner berhasil diperbarui.', 'csrf_token' => $this->security->get_csrf_token_name(), 'csrf_hash' => $this->security->get_csrf_hash() ]); } else { echo json_encode([ 'status' => 'error', 'message' => 'Gagal memperbarui urutan banner.', 'csrf_token' => $this->security->get_csrf_token_name(), 'csrf_hash' => $this->security->get_csrf_hash() ]); } } public function update_flying_banner_order() { if (!$this->input->is_ajax_request()) { show_404(); } $items = json_decode($this->input->post('items'), true); // Validasi if (!is_array($items)) { echo json_encode([ 'status' => 'error', 'message' => 'Data tidak valid' ]); return; } $success = true; // Loop dan update order_number sesuai urutan array foreach ($items as $index => $id) { $update = $this->Banner_m->update_flying_banner_order($id, $index + 1); if (!$update) { $success = false; break; } } if ($success) { echo json_encode([ 'status' => 'success', 'message' => 'Urutan banner berhasil diperbarui.', 'csrf_token' => $this->security->get_csrf_token_name(), 'csrf_hash' => $this->security->get_csrf_hash() ]); } else { echo json_encode([ 'status' => 'error', 'message' => 'Gagal memperbarui urutan banner.', 'csrf_token' => $this->security->get_csrf_token_name(), 'csrf_hash' => $this->security->get_csrf_hash() ]); } } function add_banner() { $data['userdata'] = $this->session->userdata(); $data['title'] = 'Tambah Banner | Laciasmara'; $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/contents/banners/add'); $this->load->view('admin_new/layouts/footer'); } function edit_banner($id_banner = NULL) { if (!$id_banner) { redirect('admin/contents/banners'); } $data['userdata'] = $this->session->userdata(); $data['title'] = 'Ubah Banner | Laciasmara'; $data['banner'] = $this->Banner_m->get_banner_by_id($id_banner); if (!$data['banner']) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'Banner tidak ditemukan. coba lagi'); redirect(base_url('admin/contents/banners')); return; } $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/contents/banners/edit'); $this->load->view('admin_new/layouts/footer'); } function edit_flying_banner($id_flying_banner = NULL) { if (!$id_flying_banner) { redirect('admin/contents/flying-banners'); } $data['userdata'] = $this->session->userdata(); $data['title'] = 'Ubah Flying Banner | Laciasmara'; $data['flying_banner'] = $this->Banner_m->get_flying_banner_by_id($id_flying_banner); if (!$data['flying_banner']) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'Flying Banner tidak ditemukan. coba lagi'); redirect(base_url('admin/contents/flying-banners')); return; } $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/contents/flying_banners/edit'); $this->load->view('admin_new/layouts/footer'); } public function create_flying_banner() { $data = $this->input->post(); $cta_text = $data['cta_text']; $cta_text = preg_replace('/<\/h[1-6]><h[1-6]>/', '<br>', $cta_text); $cta_text = preg_replace('/<\/p><p>/', '<br>', $cta_text); $cta_text = preg_replace('/<\/h[1-6]><p>/', '<br>', $cta_text); $cta_text = preg_replace('/<\/p><h[1-6]>/', '<br>', $cta_text); // Hapus tag heading dan paragraf $cta_text = preg_replace('/<h[1-6]>(.*?)<\/h[1-6]>/', '$1', $cta_text); $cta_text = preg_replace('/<p>(.*?)<\/p>/', '$1', $cta_text); $cta_text = str_replace(' ', '<br>', $cta_text); $banner_data = [ 'background_image' => $data['background_image'], 'banner_image' => $data['banner_image'], 'cta_text' => $cta_text, 'cta_button_text' => $data['cta_button_text'], 'cta_button_link' => $data['cta_button_link'], 'order_number' => $data['order_number'], 'is_active' => isset($data['is_active']) ? $data['is_active'] : 0, 'created_at' => date('Y-m-d H:i:s') ]; $this->db->trans_begin(); try { $this->db->insert('top_banners', $banner_data); if ($this->db->trans_status() === FALSE) { throw new Exception('Gagal menyimpan data banner'); } $this->db->trans_commit(); $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Banner berhasil ditambahkan!'); redirect('admin/contents/flying-banners'); } catch (Exception $e) { $this->db->trans_rollback(); $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); redirect('admin/contents/flying-banners/add'); } } public function create_banner() { $data = $this->input->post(); $cta_text = $data['cta_text']; $cta_text = preg_replace('/<\/h[1-6]><h[1-6]>/', '<br>', $cta_text); $cta_text = preg_replace('/<\/p><p>/', '<br>', $cta_text); $cta_text = preg_replace('/<\/h[1-6]><p>/', '<br>', $cta_text); $cta_text = preg_replace('/<\/p><h[1-6]>/', '<br>', $cta_text); // Hapus tag heading dan paragraf $cta_text = preg_replace('/<h[1-6]>(.*?)<\/h[1-6]>/', '$1', $cta_text); $cta_text = preg_replace('/<p>(.*?)<\/p>/', '$1', $cta_text); $cta_text = str_replace(' ', '<br>', $cta_text); $banner_data = [ 'image_url' => $data['image_url'], 'cta_text' => $cta_text, 'cta_button_text' => $data['cta_button_text'], 'cta_button_link' => $data['cta_button_link'], 'order_number' => $data['order_number'], 'is_active' => isset($data['is_active']) ? $data['is_active'] : 0, 'created_at' => date('Y-m-d H:i:s') ]; $this->db->trans_begin(); try { $this->db->insert('carousel_banners', $banner_data); if ($this->db->trans_status() === FALSE) { throw new Exception('Gagal menyimpan data banner'); } $this->db->trans_commit(); $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Banner berhasil ditambahkan!'); redirect('admin/contents/banners'); } catch (Exception $e) { $this->db->trans_rollback(); $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); redirect('admin/contents/banners/add'); } } function pages() { $data['userdata'] = $this->session->userdata(); $data['pages'] = $this->Page_m->get_all_pages(); $data['title'] = 'Kelola Halaman Statis | Laciasmara'; $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/contents/pages/index'); $this->load->view('admin_new/layouts/footer'); } function add_page() { $data['userdata'] = $this->session->userdata(); $data['title'] = 'Tambah Halaman Statis | Laciasmara'; $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/contents/pages/add'); $this->load->view('admin_new/layouts/footer'); } function edit_page($id_page = NULL) { if (!$id_page) { redirect('admin/contents/static-pages'); } $data['userdata'] = $this->session->userdata(); $data['page'] = $this->Page_m->get_page_by_id($id_page); $data['title'] = 'Edit Halaman Statis | Laciasmara'; if (!$data['page']) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'Halaman tidak ditemukan. coba lagi'); redirect(base_url('admin/contents/static-pages')); return; } $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/contents/pages/edit'); $this->load->view('admin_new/layouts/footer'); } public function update_flying_banner($id_banner) { $data = $this->input->post(); $cta_text = $data['cta_text']; $cta_text = preg_replace('/<\/h[1-6]><h[1-6]>/', '<br>', $cta_text); $cta_text = preg_replace('/<\/p><p>/', '<br>', $cta_text); $cta_text = preg_replace('/<\/h[1-6]><p>/', '<br>', $cta_text); $cta_text = preg_replace('/<\/p><h[1-6]>/', '<br>', $cta_text); // Hapus tag heading dan paragraf $cta_text = preg_replace('/<h[1-6]>(.*?)<\/h[1-6]>/', '$1', $cta_text); $cta_text = preg_replace('/<p>(.*?)<\/p>/', '$1', $cta_text); $cta_text = str_replace(' ', '<br>', $cta_text); $banner_data = [ 'background_image' => $data['background_image'], 'banner_image' => $data['banner_image'], 'cta_text' => $cta_text, 'cta_button_text' => $data['cta_button_text'], 'cta_button_link' => $data['cta_button_link'], 'order_number' => $data['order_number'], 'is_active' => isset($data['is_active']) ? $data['is_active'] : 0, 'created_at' => date('Y-m-d H:i:s') ]; $this->db->trans_begin(); try { $this->db->where('banner_id', $id_banner); $this->db->update('top_banners', $banner_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', 'Banner berhasil diperbarui!'); redirect('admin/contents/flying-banners'); } catch (Exception $e) { $this->db->trans_rollback(); $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); redirect('admin/contents/flying-banners/edit/' . $id_banner); } } public function update_banner($id_banner) { $data = $this->input->post(); $cta_text = $data['cta_text']; $cta_text = preg_replace('/<\/h[1-6]><h[1-6]>/', '<br>', $cta_text); $cta_text = preg_replace('/<\/p><p>/', '<br>', $cta_text); $cta_text = preg_replace('/<\/h[1-6]><p>/', '<br>', $cta_text); $cta_text = preg_replace('/<\/p><h[1-6]>/', '<br>', $cta_text); // Hapus tag heading dan paragraf $cta_text = preg_replace('/<h[1-6]>(.*?)<\/h[1-6]>/', '$1', $cta_text); $cta_text = preg_replace('/<p>(.*?)<\/p>/', '$1', $cta_text); $cta_text = str_replace(' ', '<br>', $cta_text); $banner_data = [ 'image_url' => $data['image_url'], 'cta_text' => $cta_text, 'cta_button_text' => $data['cta_button_text'], 'cta_button_link' => $data['cta_button_link'], 'order_number' => $data['order_number'], 'is_active' => isset($data['is_active']) ? $data['is_active'] : 0, 'updated_at' => date('Y-m-d H:i:s') ]; $this->db->trans_begin(); try { $this->db->where('carousel_banner_id', $id_banner); $this->db->update('carousel_banners', $banner_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', 'Banner berhasil diperbarui!'); redirect('admin/contents/banners'); } catch (Exception $e) { $this->db->trans_rollback(); $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); redirect('admin/contents/banners/edit/' . $id_banner); } } public function delete_banner($id_banner) { if (!$id_banner) { redirect('admin/contents/banners'); } $this->db->where('carousel_banner_id', $id_banner); $updated = $this->db->update('carousel_banners', [ 'deleted_at' => date('Y-m-d H:i:s') ]); if ($updated) { $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Banner berhasil dihapus!'); } else { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'Gagal menghapus banner!'); } redirect('admin/contents/banners'); } public function delete_flying_banner($id_flying_banner) { if (!$id_flying_banner) { redirect('admin/contents/flying-banners'); } $this->db->where('banner_id', $id_flying_banner); $updated = $this->db->update('top_banners', [ 'deleted_at' => date('Y-m-d H:i:s') ]); if ($updated) { $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Flying Banner berhasil dihapus!'); } else { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'Gagal menghapus Flying Banner!'); } redirect('admin/contents/flying-banners'); } public function store_page() { $data = $this->input->post(); $alias = !empty($data['alias']) ? $data['alias'] : $this->generate_alias($data['page_title']); $alias_en = !empty($data['alias_en']) ? $data['alias_en'] : $this->generate_alias($data['page_title_en']); // Ambil last priority $this->db->select_max('priority'); $last_priority = $this->db->get('pages')->row()->priority ?? 0; $priority = $last_priority + 1; $page_data = [ 'page_title' => $data['page_title'], 'page_title_en' => $data['page_title_en'], 'alias' => $alias, 'alias_en' => $alias_en, 'introduction' => $data['introduction'], 'introduction_en' => $data['introduction_en'], 'body_text' => $data['body'], 'body_text_en' => $data['body_en'], 'meta_description' => $data['seoMetaDescription'], 'status' => isset($data['status']) ? $data['status'] : 0, 'priority' => $priority, ]; $this->db->trans_begin(); try { $this->db->insert('pages', $page_data); if ($this->db->trans_status() === FALSE) { throw new Exception('Gagal menyimpan data halaman'); } $this->db->trans_commit(); $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Halaman berhasil ditambahkan!'); redirect('admin/contents/static-pages'); } catch (Exception $e) { $this->db->trans_rollback(); $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); redirect('admin/contents/static-pages/add'); } } public function update_page($id_page) { $data = $this->input->post(); $alias = !empty($data['alias']) ? $data['alias'] : $this->generate_alias($data['page_title']); $alias_en = !empty($data['alias_en']) ? $data['alias_en'] : $this->generate_alias($data['page_title_en']); $page_data = [ 'page_title' => $data['page_title'], 'page_title_en' => $data['page_title_en'], 'alias' => $alias, 'alias_en' => $alias_en, 'introduction' => $data['introduction'], 'introduction_en' => $data['introduction_en'], 'body_text' => $data['body'], 'body_text_en' => $data['body_en'], 'meta_description' => $data['seoMetaDescription'], 'status' => isset($data['status']) ? $data['status'] : 0, ]; $this->db->trans_begin(); try { $this->db->where('id_pages', $id_page); $this->db->update('pages', $page_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', 'Halaman berhasil diperbarui!'); redirect('admin/contents/static-pages'); } catch (Exception $e) { $this->db->trans_rollback(); $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); redirect('admin/contents/static-pages/edit/' . $id_page); } } private function generate_alias($title) { // Hapus karakter khusus, ganti spasi dengan dash, convert ke lowercase return strtolower(str_replace(' ', '-', preg_replace('/[^a-zA-Z0-9\s]/', '', trim($title)))); } public function delete_page($id_page) { if (!$id_page) { redirect('admin/contents/static-pages'); } if ($this->db->delete('pages', ['id_pages' => $id_page])) { $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Halaman berhasil dihapus!'); } else { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'Gagal menghapus halaman!'); } redirect('admin/contents/static-pages'); } public function add_footer_category() { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } // Ambil data dari form $name_id = $this->input->post('name_id', true); $name_en = $this->input->post('name_en', true); $column_position = (int) $this->input->post('column_position', true); $display_order = (int) $this->input->post('display_order', true); $is_special = $this->input->post('is_special') ? 1 : 0; $is_active = $this->input->post('is_active') ? 1 : 0; // Mulai transaksi $this->db->trans_start(); try { // Data untuk dimasukkan ke database $data = [ 'name_id' => $name_id, 'name_en' => $name_en, 'column_position' => $column_position, 'display_order' => $display_order, 'is_active' => $is_active, 'is_special' => $is_special, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s') ]; // Insert data ke tabel footer_categories $this->db->insert('footer_categories', $data); // Cek status transaksi if ($this->db->trans_status() === false) { throw new Exception('Terjadi kesalahan saat menyimpan data'); } // Commit transaksi jika berhasil $this->db->trans_commit(); // Set flash message success $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Kategori footer berhasil ditambahkan!'); } catch (Exception $e) { // Rollback transaksi jika gagal $this->db->trans_rollback(); // Set flash message error $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); } // Redirect ke halaman footer redirect(base_url('admin/contents/footer')); } public function edit_footer_category($id) { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } $data['userdata'] = $this->session->userdata(); $data['category_id'] = $id; $data['category'] = $this->Footer_m->get_category_by_id($id); $data['title'] = 'Kelola Kategori Footer | Laciasmara'; // Pastikan hanya admin yang bisa mengakses if (!$data['category']) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'Kategori tidak ditemukan. coba lagi'); redirect(base_url('admin/contents/footer')); return; } $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/contents/footer/edit'); $this->load->view('admin_new/layouts/footer'); } public function handle_footer_category_update() { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } // Ambil data dari form $category_id = $this->input->post('category_id', true); $name_id = $this->input->post('name_id', true); $name_en = $this->input->post('name_en', true); $column_position = (int) $this->input->post('column_position', true); $display_order = (int) $this->input->post('display_order', true); $is_active = $this->input->post('is_active') == '1' ? 1 : 0; // Mulai transaksi $this->db->trans_start(); try { // Data yang akan diupdate $data = [ 'name_id' => $name_id, 'name_en' => $name_en, 'column_position' => $column_position, 'display_order' => $display_order, 'is_active' => $is_active, 'updated_at' => date('Y-m-d H:i:s') ]; // Lakukan update ke tabel footer_categories $this->db->where('id', $category_id); $this->db->update('footer_categories', $data); // Cek status transaksi if ($this->db->trans_status() === false) { throw new Exception('Terjadi kesalahan saat memperbarui data'); } // Commit transaksi jika berhasil $this->db->trans_commit(); // Set flash message sukses $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Kategori footer berhasil diperbarui!'); } catch (Exception $e) { // Rollback jika gagal $this->db->trans_rollback(); // Set flash message error $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); } // Redirect kembali ke halaman footer redirect(base_url('admin/contents/footer')); } /** * Menghapus kategori footer beserta semua link yang terkait * * @param int $id ID kategori yang akan dihapus * @return void */ public function delete_footer_category($id) { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } // Validasi ID $id = (int) $id; if (!$id) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'ID kategori tidak valid'); redirect(base_url('admin/contents/footer')); return; } // Mulai transaksi $this->db->trans_start(); try { // Cek apakah kategori ada $category = $this->db->where('id', $id) ->get('footer_categories') ->row(); if (!$category) { throw new Exception('Kategori footer tidak ditemukan'); } // Hapus semua link yang terkait dengan kategori ini $this->db->where('category_id', $id)->delete('footer_links'); // Hapus kategori $this->db->where('id', $id)->delete('footer_categories'); // Cek status transaksi if ($this->db->trans_status() === false) { throw new Exception('Terjadi kesalahan saat menghapus data'); } // Commit transaksi jika berhasil $this->db->trans_commit(); // Set flash message success $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Kategori footer berhasil dihapus!'); } catch (Exception $e) { // Rollback transaksi jika gagal $this->db->trans_rollback(); // Set flash message error $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); } // Redirect ke halaman footer redirect(base_url('admin/contents/footer')); } public function add_footer_category_link() { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } // Ambil data dari form $category_id = (int) $this->input->post('category_id', true); $name_id = $this->input->post('name_id', true); $name_en = $this->input->post('name_en', true); $url = $this->input->post('url', true); $display_order = (int) $this->input->post('display_order', true); $is_active = $this->input->post('is_active') ? 1 : 0; // Mulai transaksi $this->db->trans_start(); try { // Cek apakah kategori yang dipilih ada $category = $this->db->where('id', $category_id) ->get('footer_categories') ->row(); if (!$category) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'Kategori footer tidak ditemukan'); redirect(base_url('admin/contents/footer')); return; } // Data untuk dimasukkan ke database $data = [ 'category_id' => $category_id, 'name_id' => $name_id, 'name_en' => $name_en, 'url' => $url, 'display_order' => $display_order, 'is_active' => $is_active, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s') ]; // Insert data ke tabel footer_links $this->db->insert('footer_links', $data); // Cek status transaksi if ($this->db->trans_status() === false) { throw new Exception('Terjadi kesalahan saat menyimpan data'); } // Commit transaksi jika berhasil $this->db->trans_commit(); // Set flash message success $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Link footer berhasil ditambahkan!'); } catch (Exception $e) { // Rollback transaksi jika gagal $this->db->trans_rollback(); // Set flash message error $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); } // Redirect ke halaman footer redirect(base_url('admin/contents/footer')); } public function edit_footer_category_link($id) { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } $data['userdata'] = $this->session->userdata(); $data['category_link_id'] = $id; $data['category_link'] = $this->Footer_m->get_category_link_by_id($id); $data['title'] = 'Kelola Link Kategori Footer | Laciasmara'; // Pastikan hanya admin yang bisa mengakses if (!$data['category_link']) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'Kategori tidak ditemukan. coba lagi'); redirect(base_url('admin/contents/footer')); return; } $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/contents/footer/edit_link'); $this->load->view('admin_new/layouts/footer'); } public function handle_footer_category_link_update() { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } // Ambil data dari form $category_link_id = $this->input->post('category_link_id', true); $name_id = $this->input->post('name_id', true); $name_en = $this->input->post('name_en', true); $url = $this->input->post('url', true); $display_order = (int) $this->input->post('display_order', true); $is_active = $this->input->post('is_active') == '1' ? 1 : 0; // Mulai transaksi $this->db->trans_start(); try { // Data yang akan diupdate $data = [ 'name_id' => $name_id, 'name_en' => $name_en, 'url' => $url, 'display_order' => $display_order, 'is_active' => $is_active, 'updated_at' => date('Y-m-d H:i:s') ]; // Lakukan update ke tabel footer_categories $this->db->where('id', $category_link_id); $this->db->update('footer_links', $data); // Cek status transaksi if ($this->db->trans_status() === false) { throw new Exception('Terjadi kesalahan saat memperbarui data'); } // Commit transaksi jika berhasil $this->db->trans_commit(); // Set flash message sukses $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Link kategori footer berhasil diperbarui!'); } catch (Exception $e) { // Rollback jika gagal $this->db->trans_rollback(); // Set flash message error $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); } // Redirect kembali ke halaman footer redirect(base_url('admin/contents/footer')); } /** * Menghapus link kategori footer * * @param int $id ID link yang akan dihapus * @return void */ public function delete_footer_category_link($id) { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } // Validasi ID $id = (int) $id; if (!$id) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'ID link tidak valid'); redirect(base_url('admin/contents/footer')); return; } // Mulai transaksi $this->db->trans_start(); try { // Cek apakah link ada $link = $this->db->where('id', $id) ->get('footer_links') ->row(); if (!$link) { throw new Exception('Link footer tidak ditemukan'); } // Hapus link $this->db->where('id', $id)->delete('footer_links'); // Cek status transaksi if ($this->db->trans_status() === false) { throw new Exception('Terjadi kesalahan saat menghapus data'); } // Commit transaksi jika berhasil $this->db->trans_commit(); // Set flash message success $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Link footer berhasil dihapus!'); } catch (Exception $e) { // Rollback transaksi jika gagal $this->db->trans_rollback(); // Set flash message error $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); } // Redirect ke halaman footer redirect(base_url('admin/contents/footer')); } public function add_footer_social_media() { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } // Ambil data dari form $name = $this->input->post('name', true); $icon_class = $this->input->post('icon_class', true); $url = $this->input->post('url', true); $display_order = $this->input->post('display_order', true); $is_active = $this->input->post('is_active') ? 1 : 0; // Mulai transaksi $this->db->trans_start(); try { // Data untuk dimasukkan ke database $data = [ 'name' => $name, 'icon_class' => $icon_class, 'url' => $url, 'display_order' => $display_order, 'is_active' => $is_active, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s') ]; // Insert data ke tabel footer_categories $this->db->insert('footer_social_media', $data); // Cek status transaksi if ($this->db->trans_status() === false) { throw new Exception('Terjadi kesalahan saat menyimpan data'); } // Commit transaksi jika berhasil $this->db->trans_commit(); // Set flash message success $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Sosial media berhasil ditambahkan!'); } catch (Exception $e) { // Rollback transaksi jika gagal $this->db->trans_rollback(); // Set flash message error $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); } // Redirect ke halaman footer redirect(base_url('admin/contents/footer')); } public function edit_footer_social_media($id) { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } $data['userdata'] = $this->session->userdata(); $data['social_id'] = $id; $data['social_data'] = $this->Footer_m->get_social_media_by_id($id); $data['title'] = 'Kelola Social Media Footer | Laciasmara'; // Pastikan hanya admin yang bisa mengakses if (!$data['social_data']) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'Social Media tidak ditemukan. coba lagi'); redirect(base_url('admin/contents/footer')); return; } $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/contents/footer/edit_social_media'); $this->load->view('admin_new/layouts/footer'); } public function handle_footer_social_media_update() { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } // Ambil data dari form $social_id = $this->input->post('social_id', true); $name = $this->input->post('name', true); $url = $this->input->post('url', true); $icon_class = $this->input->post('icon_class', true); $display_order = (int) $this->input->post('display_order', true); $is_active = $this->input->post('is_active') == '1' ? 1 : 0; // Mulai transaksi $this->db->trans_start(); try { // Data yang akan diupdate $data = [ 'name' => $name, 'url' => $url, 'icon_class' => $icon_class, 'display_order' => $display_order, 'is_active' => $is_active, 'updated_at' => date('Y-m-d H:i:s') ]; // Lakukan update ke tabel footer_categories $this->db->where('id', $social_id); $this->db->update('footer_social_media', $data); // Cek status transaksi if ($this->db->trans_status() === false) { throw new Exception('Terjadi kesalahan saat memperbarui data'); } // Commit transaksi jika berhasil $this->db->trans_commit(); // Set flash message sukses $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Sosial media footer berhasil diperbarui!'); } catch (Exception $e) { // Rollback jika gagal $this->db->trans_rollback(); // Set flash message error $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); } // Redirect kembali ke halaman footer redirect(base_url('admin/contents/footer')); } /** * Menghapus social media * * @param int $id ID social media yang akan dihapus * @return void */ public function delete_footer_social_media($id) { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } // Validasi ID $id = (int) $id; if (!$id) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'ID link tidak valid'); redirect(base_url('admin/contents/footer')); return; } // Mulai transaksi $this->db->trans_start(); try { // Cek apakah link ada $link = $this->db->where('id', $id) ->get('footer_social_media') ->row(); if (!$link) { throw new Exception('Link footer tidak ditemukan'); } // Hapus link $this->db->where('id', $id)->delete('footer_social_media'); // Cek status transaksi if ($this->db->trans_status() === false) { throw new Exception('Terjadi kesalahan saat menghapus data'); } // Commit transaksi jika berhasil $this->db->trans_commit(); // Set flash message success $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Sosial media berhasil dihapus!'); } catch (Exception $e) { // Rollback transaksi jika gagal $this->db->trans_rollback(); // Set flash message error $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); } // Redirect ke halaman footer redirect(base_url('admin/contents/footer')); } public function add_footer_payment_method() { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } // Ambil data dari form $name = $this->input->post('name', true); $image_url = $this->input->post('image_url', true); $display_order = (int) $this->input->post('display_order', true); $is_active = $this->input->post('is_active') ? 1 : 0; // Mulai transaksi $this->db->trans_start(); try { // Data untuk dimasukkan ke database $data = [ 'name' => $name, 'image_url' => $image_url, 'display_order' => $display_order, 'is_active' => $is_active, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s') ]; // Insert data ke tabel footer_payment_methods $this->db->insert('footer_payment_methods', $data); // Cek status transaksi if ($this->db->trans_status() === false) { throw new Exception('Terjadi kesalahan saat menyimpan data'); } // Commit transaksi jika berhasil $this->db->trans_commit(); // Set flash message success $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Metode pembayaran berhasil ditambahkan!'); } catch (Exception $e) { // Rollback transaksi jika gagal $this->db->trans_rollback(); // Set flash message error $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); } // Redirect ke halaman footer redirect(base_url('admin/contents/footer')); } public function edit_footer_payment($id) { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } $data['userdata'] = $this->session->userdata(); $data['payment_id'] = $id; $data['payment_data'] = $this->Footer_m->get_payment_by_id($id); $data['title'] = 'Kelola Metode Pembayaran Footer | Laciasmara'; // Pastikan hanya admin yang bisa mengakses if (!$data['payment_data']) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'Metode pembayaran tidak ditemukan. coba lagi'); redirect(base_url('admin/contents/footer')); return; } $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/contents/footer/edit_payment'); $this->load->view('admin_new/layouts/footer'); } public function handle_footer_payment_update() { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } // Ambil data dari form $payment_id = $this->input->post('payment_id', true); $name = $this->input->post('name', true); $image_url = $this->input->post('image_url', true); $display_order = (int) $this->input->post('display_order', true); $is_active = $this->input->post('is_active') == '1' ? 1 : 0; // Mulai transaksi $this->db->trans_start(); try { // Data yang akan diupdate $data = [ 'name' => $name, 'image_url' => $image_url, 'display_order' => $display_order, 'is_active' => $is_active, 'updated_at' => date('Y-m-d H:i:s') ]; // Lakukan update ke tabel footer_categories $this->db->where('id', $payment_id); $this->db->update('footer_payment_methods', $data); // Cek status transaksi if ($this->db->trans_status() === false) { throw new Exception('Terjadi kesalahan saat memperbarui data'); } // Commit transaksi jika berhasil $this->db->trans_commit(); // Set flash message sukses $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Metode pembayaran footer berhasil diperbarui!'); } catch (Exception $e) { // Rollback jika gagal $this->db->trans_rollback(); // Set flash message error $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); } // Redirect kembali ke halaman footer redirect(base_url('admin/contents/footer')); } /** * Menghapus payment method * * @param int $id ID payment method yang akan dihapus * @return void */ public function delete_footer_payment_method($id) { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } // Validasi ID $id = (int) $id; if (!$id) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'ID link tidak valid'); redirect(base_url('admin/contents/footer')); return; } // Mulai transaksi $this->db->trans_start(); try { // Cek apakah link ada $link = $this->db->where('id', $id) ->get('footer_payment_methods') ->row(); if (!$link) { throw new Exception('Link footer tidak ditemukan'); } // Hapus link $this->db->where('id', $id)->delete('footer_payment_methods'); // Cek status transaksi if ($this->db->trans_status() === false) { throw new Exception('Terjadi kesalahan saat menghapus data'); } // Commit transaksi jika berhasil $this->db->trans_commit(); // Set flash message success $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Metode pembayaran berhasil dihapus!'); } catch (Exception $e) { // Rollback transaksi jika gagal $this->db->trans_rollback(); // Set flash message error $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); } // Redirect ke halaman footer redirect(base_url('admin/contents/footer')); } public function edit_footer_asmaradoor($id) { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } $data['userdata'] = $this->session->userdata(); $data['asmaradoor_id'] = $id; $data['asmaradoor_data'] = $this->Footer_m->get_asmaradoor_by_id($id); $data['title'] = 'Kelola Asmaradoor Footer | Laciasmara'; // Pastikan hanya admin yang bisa mengakses if (!$data['asmaradoor_data']) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'Data tidak ditemukan. coba lagi'); redirect(base_url('admin/contents/footer')); return; } $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/contents/footer/edit_asmaradoor'); $this->load->view('admin_new/layouts/footer'); } public function handle_footer_asmaradoor_update() { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } // Ambil data dari form $asmaradoor_id = $this->input->post('asmaradoor_id', true); $title_id = $this->input->post('title_id', true); $title_en = $this->input->post('title_en', true); $alt_text_id = $this->input->post('alt_text_id', true); $alt_text_en = $this->input->post('alt_text_en', true); $image_url = $this->input->post('image_url', true); $link_url = $this->input->post('link_url', true); $is_active = $this->input->post('is_active') == '1' ? 1 : 0; // Mulai transaksi $this->db->trans_start(); try { // Data yang akan diupdate $data = [ 'title_id' => $title_id, 'title_en' => $title_en, 'image_url' => $image_url, 'link_url' => $link_url, 'alt_text_id' => $alt_text_id, 'alt_text_en' => $alt_text_en, 'is_active' => $is_active, 'updated_at' => date('Y-m-d H:i:s') ]; // Lakukan update ke tabel footer_categories $this->db->where('id', $asmaradoor_id); $this->db->update('footer_asmaradoor', $data); // Cek status transaksi if ($this->db->trans_status() === false) { throw new Exception('Terjadi kesalahan saat memperbarui data'); } // Commit transaksi jika berhasil $this->db->trans_commit(); // Set flash message sukses $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Data asmaradoor footer berhasil diperbarui!'); } catch (Exception $e) { // Rollback jika gagal $this->db->trans_rollback(); // Set flash message error $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); } // Redirect kembali ke halaman footer redirect(base_url('admin/contents/footer')); } public function edit_footer_bottom($id) { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } $data['userdata'] = $this->session->userdata(); $data['footer_id'] = $id; $data['footer_data'] = $this->Footer_m->get_footer_bottom_by_id($id); $data['title'] = 'Kelola Footer Bottom| Laciasmara'; // Pastikan hanya admin yang bisa mengakses if (!$data['footer_data']) { $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', 'Data tidak ditemukan. coba lagi'); redirect(base_url('admin/contents/footer')); return; } $this->load->view('admin_new/layouts/header', $data); $this->load->view('admin_new/contents/footer/edit_bottom'); $this->load->view('admin_new/layouts/footer'); } public function handle_footer_bottom_update() { // Pastikan hanya admin yang bisa mengakses if (!$this->session->userdata('name')) { redirect(base_url('admin/auth/login')); return; } // Ambil data dari form $footer_id = $this->input->post('footer_id', true); $content_id = $this->input->post('content_id', true); $content_en = $this->input->post('content_en', true); $is_active = $this->input->post('is_active') == '1' ? 1 : 0; // Mulai transaksi $this->db->trans_start(); try { // Data yang akan diupdate $data = [ 'content_id' => $content_id, 'content_en' => $content_en, 'is_active' => $is_active, 'updated_at' => date('Y-m-d H:i:s') ]; // Lakukan update ke tabel footer_categories $this->db->where('id', $footer_id); $this->db->update('footer_bottom', $data); // Cek status transaksi if ($this->db->trans_status() === false) { throw new Exception('Terjadi kesalahan saat memperbarui data'); } // Commit transaksi jika berhasil $this->db->trans_commit(); // Set flash message sukses $this->session->set_flashdata('message_type', 'success'); $this->session->set_flashdata('message', 'Data footer berhasil diperbarui!'); } catch (Exception $e) { // Rollback jika gagal $this->db->trans_rollback(); // Set flash message error $this->session->set_flashdata('message_type', 'error'); $this->session->set_flashdata('message', $e->getMessage()); } // Redirect kembali ke halaman footer redirect(base_url('admin/contents/footer')); } }