Template masih dibuat dalam satu file saja. Ini nanti akan bermasalah ketika kita membuat
halaman baru.
Permsalahannya:
Kita akan menulis kode yang sama berulang-ulang dalam file template yang berbeda.
Maka kita harus mengubah semua file template yang kita buat satu per satu.
Tentu ini kurang efektif, karena kita akan menghabiskan banyak waktu dan tentaga untuk
mengubahnya.
Salah satu solusi dari permasalahan ini yaitu dengan menggunakan partials. Dengan partials kita
akan membagi template menjadi bagian-bagian kecil yang dapat digunakan kembali.
Jika kamu pernah belajar Laravel, kamu mungkin pernah mendengar fungsi yield yang
memungkinkan kita untuk mengimpor bagian template yang lain. Fungsi yield di Laravel sering
digunakan untuk membuat layout.1
Tidak, di Codeigniter tidak ada fungsi yield. Namun, kita bisa menggunakan fungsi $this->load-
>view() sebagai penggantinya. Karena fungsinya hampir sama dengan yield, yaitu untuk me-load
sebuah view.2
Fungsi $this->load->view() ini, nanti akan kita gunakan untuk me-load partials ke dalam
template.
Sebenarnya teknik ini pertama saya dengar saat membuat template Hugo…
…dan rencananya akan saya coba juga terapkan untuk template aplikasi Codeigniter.
Sekarang coba buka file index.html pada SB Admin dan perhatikan, apa saja partial yang
bisa kita buat dari sana?
Berdasarkan gambar di atas, berikut ini partial yang bisa kita buat:
Tidak harus, karena ada juga membarikan nama includes atau _includes.
Ini untuk memudahkan dalam membedakan view dan partial. View akan kita load dari
Controller, sedangkan partial akan kita load dari view.
Biasanya dalam penulisan kode (OOP), sesuatu yang bersifat private dan lokal kadang ditulis
dengan garis bawah di depannya.
Oke, lanjut…
Berikutnya kita akan membuat semua partial yang telah kita tentukan di atas.
Partial head.php
Partial ini berisi kode-kode untuk tag <head>. Kita bisa copy dari file
views/admin/overview.php mulai dari tag <head> sampai penutupnya </head>.
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-
to-fit=no">
Perhatikan kode pada tag <title>, di sana kita menggunakan sebuah konstanta SITE_NAME
untuk menambil nama web.
Ini akan menjadi judul yang akan tampil di browser. Fungsi ucfirst() untuk membuat huruf
besar di awal kata. Lalu judulnya kita ambil dari segment URL.
Partial ini hanya berisi kode untuk menu navbar. Berikut ini isi kode dari partial navbar.php:
</nav>
Pada kode navbar, kita menggunakan konstanta SITE_NAME untuk menampilkan nama web di
navbar.
Lalu kita menggunakan class bg-success untuk mengubah warnanya menjadi hijau. Supaya
Ini tampilannya:
Partial sidebar.php
Partial ini berisi kode untuk menampilkan menu bagian samping (sidebar). Berikut ini isi kode
sidebar.php:
Pada kode di atas, kita menggunakan segment URI untuk mengecek apakah menu itu sedang
dibuka atau tidak.
Misalnya ini:
Kode ini akan mengecek, apakah halaman /admin/products sedang dibuka atau tidak.
Oya, halaman untuk menu products, users, dan settings belum kita buat. Insya’allah di tutorial
berikutnya akan kita buat.
Partial breadcrumb.php
Partial ini berisi kode untuk menampilkan breadcrumb. Breadcrumbs adalah sebuah link navigasi
yang menampilkan link halaman sebelumnya dari halaman tempat kita berada.
<!-- Breadcrumbs-->
<ol class="breadcrumb">
<?php foreach ($this->uri->segments as $segment): ?>
<?php
$url = substr($this->uri->uri_string, 0, strpos($this->uri-
>uri_string, $segment)) . $segment;
$is_active = $url == $this->uri->uri_string;
?>
Partial ini berisi kode untuk tombol scrolltop. Berikut ini isinya:
Partial ini berisi kode untuk bagian footer, berikut ini isi kode untuk partial footer.php:
Pada kode partial footer.php, kita menggunakan konstanta SITE_NAME untuk menampilkan
nama website. Lalu menggunakan fungsi Date('Y') untuk menampilkan tahun saat ini.
Partial modal.php
Partial js.php
Partial ini berisi kode-kode untuk me-load Javascript. Berikut ini kode untuk js.php:
<!DOCTYPE html>
<html lang="en">
<head>
<?php $this->load->view("admin/_partials/head.php") ?>
</head>
<body id="page-top">
<div id="wrapper">
<div id="content-wrapper">
<div class="container-fluid">
<!--
karena ini halaman overview (home), kita matikan partial breadcrumb.
Jika anda ingin mengampilkan breadcrumb di halaman overview,
silahkan hilangkan komentar (//) di tag PHP di bawah.
-->
<?php //$this->load->view("admin/_partials/breadcrumb.php") ?>
</div>
<!-- /.container-fluid -->
</div>
<!-- /.content-wrapper -->
</div>
<!-- /#wrapper -->
</body>
</html>
Pada kode template tersebut, kita me-load partial dengan fungsi $this->view->load().