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