Biasanya Web programmer menggunakan template dinamis yang dinamic untuk load view dicodeigniter. nah untuk itu saya akan berbagi libraries yang biasa saya gunakan untuk membuat view di codeigniter lebih mudah. berikut ini caranya.
- kita siapkan halaman template dari html, misalnya kita gunakan template yang sederhana ini.
<html> <head> <title>Template Library | Ringkas.us</title> </head> <body> <CENTER> <!-- BAGIAN HEADER --> <h1>HEADER</h1> <!-- BAGIAN HEADER AKHIR --> <a href="http://localhost/template/index.php/welcome/">Menu 1</a> | <a href="http://localhost/template/index.php/welcome/menu2">Menu 2</a> <h1>ISI</h1> <!-- BAGIAN FOOTER --> <h1>FOOTER</h1> <!-- BAGIAN FOOTER AKHIR --> </CENTER> </body> </html>
- Download codeigniter yang versi stable untuk sekarang saya menggunakan versi 3.1.4
- Setelah download kemudian taruh di folder htdocs kamu ubah nama folder menjadi template
- kemudian masuk ke folder application/libraries buat file dengan nama template.php, Maka jika saya tampilkan struktur folder dari codeigniter milik saya akan seperti gambar ini.
- kemudian masukkan kode php ini ke dalamnya
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Template { var $template_data = array(); function set($name, $value){ $this->template_data[$name] = $value; } function load($template = '', $view = '' , $view_data = array(), $return = FALSE) { $this->CI =& get_instance(); $this->set('contents', $this->CI->load->view($view, $view_data, TRUE)); return $this->CI->load->view($template, $this->template_data, $return); } }
- kode ini merupakan class yang akan kita gunakan sebagai fungsi memanggil template, kita aktifkan libraries tersebut pada fileautoload.php folder application/config
$autoload['libraries'] = array();
diubah menjadi
$autoload['libraries'] = array('template');
- selanjutnya buka folder view di application/viewskemudian buka file bernama welcome_message.phpcopy code html ( no. 1 ) maka tampilannya akan menjadi
- buka file welcome_message.phpkemudian cari kode berikut ini
<h1>ISI</h1>
ganti menjadi
<?= $contents; ?>
klo kita buka kembali di browser akan tampil error Message: Undefined variable: contents ,
- kemudian buat 2 buah file baru di application/viewsdengan nama isi_1.php dengan isi
<h1> ISI KONTEN 1 </h1>
dan isi_2.phpdengan isi
<h1> ISI KONTEN 2 </h1>
- setelah itu kita buka file welcome.php diapplication/controller,Kemudian cari kode
$this->load->view('welcome_message');
kita ubah menjadi
$this->template->load('welcome_message','isi_1');
isi_1 adalah file isi_1.php yang telah kita buat
- kemudian kita tambahkan public function baru dengan kode berikut ini, kemudian buka kembali dibrowser dan cobalah untuk mainkan hyper link “menu 1” dan “menu 2”,
public function menu2() { $this->template->load('welcome_message','isi_2'); }
kita kamu benar dalam mengikuti langkah-langkah diatas kamu dapat melihat perubahan dalam fungsi <?= content ?> yang telah kita deskripsikan.