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