https://t.me/RX1948
Server : Apache/2.4.18 (Ubuntu)
System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64
User : oppastar ( 1041)
PHP Version : 7.0.33-0ubuntu0.16.04.15
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
Directory :  /var/www/laciasmara.com/public_html/shop/application/controllers/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/laciasmara.com/public_html/shop/application/controllers/admin/Contents.php
<?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('&nbsp;', '<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('&nbsp;', '<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('&nbsp;', '<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('&nbsp;', '<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'));
    }
}

https://t.me/RX1948 - 2025