Tutorial CodeIgniter : Part 5, Tambah Pagination

 14. Menambahkan Pagination:

Jika Anda memiliki banyak data artikel dalam database, Anda mungkin ingin menambahkan fitur pagination untuk membagi hasil pencarian menjadi beberapa halaman. Dengan begitu, pengguna dapat melihat data secara bertahap dan navigasi akan lebih mudah. Berikut adalah langkah-langkah untuk menambahkan fitur pagination pada halaman utama yang menampilkan daftar artikel.


Controller:

Tambahkan fungsi untuk menampilkan daftar artikel dengan menggunakan fitur pagination.

// application/controllers/Home.php


class Home extends CI_Controller {

    public function __construct() {

        parent::__construct();

        $this->load->model('artikel_model');

        $this->load->library('pagination');

    }


    public function index() {

        $config['base_url'] = base_url('home/index');

        $config['total_rows'] = $this->db->count_all('artikel');

        $config['per_page'] = 5; // Jumlah artikel per halaman

        $config['uri_segment'] = 3; // Bagian segment URL yang menyimpan nomor halaman


        $this->pagination->initialize($config);


        $data['title'] = "Selamat Datang di Situs Web Saya";

        $data['content'] = "Ini adalah halaman utama website.";

        $data['artikel'] = $this->artikel_model->getAllArtikel($config['per_page'], $this->uri->segment(3));

        $this->load->view('home_view', $data);

    }

}


Model:

Buat fungsi di model untuk mengambil data artikel dengan fitur pagination.

// application/models/Artikel_model.php


class Artikel_model extends CI_Model {

    public function getAllArtikel($limit, $offset) {

        $this->db->limit($limit, $offset);

        return $this->db->get('artikel')->result_array();

    }

}


View:

Tambahkan navigasi pagination di bagian bawah daftar artikel.

<!-- application/views/home_view.php -->


<!DOCTYPE html>

<html>

<head>

    <title><?= $title ?></title>

</head>

<body>

    <h1><?= $title ?></h1>

    <p><?= $content ?></p>


    <h2>Daftar Artikel</h2>

    <ul>

        <?php foreach ($artikel as $item): ?>

            <li><?= $item['judul'] ?></li>

        <?php endforeach; ?>

    </ul>


    <!-- Tampilkan navigasi pagination -->

    <?= $this->pagination->create_links() ?>

</body>

</html>


15. Menambahkan Gambar ke Artikel:

Terakhir, mari tambahkan kemampuan untuk menyisipkan gambar ke dalam artikel. Kami akan menggunakan library upload bawaan CodeIgniter untuk mengunggah gambar dan menyimpannya di direktori tertentu.

Controller:

Tambahkan fungsi untuk menyimpan artikel dengan gambar yang diunggah.


// application/controllers/Artikel.php


class Artikel extends CI_Controller {

    // ...fungsi-fungsi sebelumnya...


    public function tambah() {

        $this->form_validation->set_rules('judul', 'Judul', 'required');

        $this->form_validation->set_rules('isi', 'Isi', 'required');


        if ($this->form_validation->run() == FALSE) {

            $this->load->view('tambah_artikel_view');

        } else {

            // Proses menyimpan data artikel ke database

            $data = array(

                'judul' => $this->input->post('judul'),

                'isi' => $this->input->post('isi')

            );


            // Upload gambar jika ada

            if (!empty($_FILES['gambar']['name'])) {

                $config['upload_path'] = './uploads/';

                $config['allowed_types'] = 'jpg|jpeg|png|gif';

                $config['max_size'] = 2048; // maksimal ukuran file (dalam KB)

                $config['encrypt_name'] = TRUE; // mengenkripsi nama file


                $this->load->library('upload', $config);


                if ($this->upload->do_upload('gambar')) {

                    $data['gambar'] = $this->upload->data('file_name');

                } else {

                    $error = $this->upload->display_errors();

                    // Tampilkan pesan error jika upload gagal

                    $this->session->set_flashdata('error', $error);

                    redirect('artikel/tambah');

                }

            }


            $this->db->insert('artikel', $data);

            redirect('home');

        }

    }

}


View:

Tambahkan input file untuk mengunggah gambar di form tambah artikel.


<!-- application/views/tambah_artikel_view.php -->


<!DOCTYPE html>

<html>

<head>

    <title>Tambah Artikel Baru</title>

</head>

<body>

    <h1>Tambah Artikel Baru</h1>

    <?= form_open_multipart('artikel/tambah') ?>

        <label for="judul">Judul:</label>

        <input type="text" id="judul" name="judul" value="<?= set_value('judul') ?>" required>

        <?= form_error('judul') ?>


        <label for="isi">Isi:</label>

        <textarea id="isi" name="isi" rows="4" required><?= set_value('isi') ?></textarea>

        <?= form_error('isi') ?>


        <label for="gambar">Gambar:</label>

        <input type="file" id="gambar" name="gambar">


        <button type="submit">Simpan</button>

    <?= form_close() ?>


    <!-- Tampilkan pesan error jika ada -->

    <?php if ($this->session->flashdata('error')): ?>

        <p><?= $this->session->flashdata('error') ?></p>

    <?php endif; ?>

</body>

</html>


Kesimpulan:

Dalam tutorial ini, Anda telah belajar tentang bagaimana menambahkan fitur pagination dan kemampuan untuk menyisipkan gambar dalam artikel dengan CodeIgniter. Fitur pagination memungkinkan Anda untuk membagi data menjadi beberapa halaman sehingga pengguna dapat melihat data secara bertahap. Selain itu, kemampuan untuk mengunggah gambar memperkaya konten artikel dan menambahkan interaktivitas pada situs web Anda. CodeIgniter mempermudah pengembangan aplikasi web dengan menyediakan banyak fitur yang siap pakai dan mudah digunakan. Lanjutkan dengan eksplorasi lebih lanjut dan terus tingkatkan pengetahuan Anda dalam penggunaan CodeIgniter dan pengembangan web secara keseluruhan. Selamat mencoba dan semoga tutorial ini membantu Anda dalam perjalanan pengembangan web dengan CodeIgniter!

Lebih baru Lebih lama