bagian ii

advertisement
Bagian III
Menggunakan Template
Dengan CodeIgniter, Anda dapat menggunakan template sebagai komponen View
dalam aplikasi web Anda. Sebuah template dapat digunakan sebagai file view yang
menggunakan variabel-variabel semu (pseudo-variables) dalam menempatkan data-data
dinamis ke dalamnya. Berikut ini adalah contoh sebuah template:
<html>
<head>
<title>{blog_title}</title>
</head>
<body>
<h3>{blog_heading}</h3>
{blog_entries}
<h5>{title}</h5>
<p>{body}</p>
{/blog_entries}
</body>
</html>
Dengan template, kita memasukkan nilai-nilai data secara dinamis ke dalam komponen
view dengan menggunakan variabel semu, bukan kode PHP seperti pada bahasan sebelumnya,
melainkan menggunakan plaint-text yang mengeliminasi kode PHP dalam file-file View Anda.
Variabel-variabel semu tersebut ditulis dalam tanda kurung “{pseudo_variable}”. Jika
pemasukan data dilakukan secara berulang (loop), maka variabel semu di tulis dengan format
berikut:
{pseudo_variable}
......
......
{/pseudo_variable}
Perintah yang digunakan untuk memanggil file-file view (template) sekaligus
melakukan parser nilai-nilai data dinamis ke dalam template tersebut diletakkan pada class
controller:
$this->load->library('parser');
$this->parser->parse('template', $data);
Class controller memanggil class referensi “parser” yang diletakkan pada constructor
class controller. Kemudian objek parser memanggil function “parse('template', $data)”.
Parameter input “template” adalah nama view yang dipanggil (harus sama dengan nama file
view). Parameter input “$data” adalah variabel array multidimensi yang berisi nilai-nilai data
dinamis yang akan diletakkan ke dalam template.
Kelebihan penggunaan template dalam aplikasi web adalah terjadinya pemisahan murni
antara kode PHP dengan script HTML dalam komponen view. Dengan template, file-file view
berupa script HTML murni yang tidak mengandung kode PHP di dalamnya sehingga
memudahkan programmer web dalam merancang dan mengganti desain halaman web dalam
aplikasi yang dibangunnya.
Kekurangan penggunaan template dibandingkan dengan penggunaan file-file view
dengan kode PHP seperti pada bahasan sebelumnya adalah sedikit menurunnya kecepatan
performa akses. Hal ini karena untuk melakukan pengisian data secara dinamis ke dalam
variabel-variabel semu dalam sebuah template membutuhkan proses dari sebuah class referensi
eksternal.
File class referensi yang digunakan untuk menggunakan template adalah “Parser.php”
yang terletak dalam lokasi folder “system/libraries/”.
Sebagai contoh, sekarang kita akan membuat sebuah halaman web dinamis yang
menampilkan daftar “Contact Person” dengan paging record data (seperti pada bahasan
sebelumnya) dengan menggunakan template sebagai komponen view.
Buatlah sebuah file class controller “Contoh1” dengan kode sebagai berikut:
<?
class Contoh1 extends Controller {
function Contoh1()
{
parent::Controller();
$this->load->database('default');
$this->load->model('Contoh1_Model');
$this->load->library('parser');
}
function index()
{
$this->daftar();
}
function daftar()
{
$data = $this->Contoh1_Model->get_kontak();
$this->parser->parse('contoh1view_paging_template', $data);
}
}
?>
Class controller “Contoh1” di atas menyediakan function “daftar()” yang berfungsi
untuk mengambil data seluruh “Contact Person” kemudian memanggil function:
$this->parser->parse('contoh1view_paging_template', $data)
Perintah di atas berfungsi untuk mengirimkan data secara dinamis yang tersimpan
dalam
variabel
array
multidimensi
($data)
ke
dalam
file
template
“contoh1view_paging_template.php”.
Simpanlah class controller di atas di atas dengan nama file “contoh1.php” ke dalam
lokasi folder “application/controller/”.
Selanjutnya buatlah sebuah class model “Contoh1_Model” dengan kode sebagai
berikut:
<?
class Contoh1_Model extends Model {
function Contoh1_Model()
{
parent::Model();
$this->load->model('Pagination_Model');
}
function get_kontak()
{
$data = $this->Pagination_Model->paging('contoh1/daftar/',3,'kontak','kontak_nama',2,4);
$i = 0;
foreach ($data as $key=>$entry) {
foreach ($entry as $row=>$value) {
$return_value['result'][$i]['no'] = ($i + 1);
$return_value['result'][$i]['kontak_id'] = $value['kontak_id'];
$return_value['result'][$i]['kontak_nama'] = $value['kontak_nama'];
$return_value['result'][$i]['kontak_alamat'] = $value['kontak_alamat'];
$return_value['result'][$i]['kontak_kota'] = $value['kontak_kota'];
$return_value['result'][$i]['kontak_telp'] = $value['kontak_telp'];
$i++;
}
}
$return_value['title'] = "Aplikasi Web MVC Dengan Template";
$return_value['heading'] = "Contact Person:";
$return_value['page_nav'] = $this->pagination->create_links();
$return_value['base_url'] = $this->config->item('base_url');
return ($return_value);
}
}
?>
Class model “Contoh1_Model” di atas berfungsi untuk menyediakan function
“get_kontak()” yang akan mengambil record data dengan melakukan paging. Data yang
didapat kemudian disusun kembali ke dalam sebuah variabel array multidimensi
“$return_value”.
Simpanlah class model di atas dengan nama file “contoh1_model.php” ke dalam
lokasi folder “application/models/”.
Kemudian buatlah sebuah file template “contoh1view_paging_template” dengan kode
sebagai berikut:
<html>
<head>
<title>{title}</title>
<style type="text/css">
#link{
padding:5px;
font-family:Arial, Helvetica, sans-serif;
font-size:11px;
color:#000000;
font-weight:bold;
}
#link a{
padding:4px 7px 4px 7px;
margin:0px 5px 0px 5px;
border:1px solid #BBBBBB;
background:#FFFFFF;
color:#000000;
text-decoration:none;
}
#link a:hover{
border:1px solid #000000;
background:#BBBBBB;
color:#FFFFFF;
text-decoration:none;
}
</style>
</head>
<body>
<h2>{title}</h2>
<h3>{heading}</h3>
<br />
{page_nav}
<br />
<table border="1">
<tr>
<th>No.</th>
<th>Nama</th>
<th>Alamat</th>
<th>Kota</th>
<th>Telp</th>
</tr>
{result}
<tr>
<td align="center">{no}</td>
<td>{kontak_nama}</td>
<td>{kontak_alamat}</td>
<td>{kontak_kota}</td>
<td>{kontak_telp}</td>
</tr>
{/result}
</table>
</body>
</html>
Simpanlah template di atas dengan nama file “contoh1view_paging.php” ke dalam
lokasi folder “application/views/”.
Kemudian akseslah class controller “Contoh1” melalui browser dengan menuliskan
URL berikut ini:
URL: http://localhost/contoh1/daftar/
Output:
Gambar Aplikasi web MVC menggunakan template
Download