- Membuat struktur direktori yang mudah di jaga dan dikenali untuk 'view' anda.
- Memungkinkan untuk memakai beberapa template yang berbeda.
- Menyingkat tampilan halaman hanya dengan satu baris kode.
Setelah library terbentuk, kita akan dapat menampilkan halaman template dengan kode seperti :
$ This -> Template-> load ( 'TEMPLATE_NAME' , 'body_view' );Jauh lebih baik bukan!!!
Step 1 : Menyiapkan Direktori
Buat folder baru di dalam application/views bernama template. Folder ini yang akan kita isi dengan view template (header, footer).
Step 2 : Membuat Library
Libary dalam codeigniter hanyalah seperti kelas-kelas di PHP yang bisa di load ke controllers layaknya views.
$ This -> load-> library ( 'nama_kelas' )Membuat file template.php di dalam folder application/libraries dan kopikan kode dibawah ini :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Template { var $ci; function __construct() { $this->ci =& get_instance(); } function load($tpl_view, $body_view = null, $data = null) { if ( ! is_null( $body_view ) ) { if ( file_exists( APPPATH.'views/'.$tpl_view.'/'.$body_view ) ) { $body_view_path = $tpl_view.'/'.$body_view; } else if ( file_exists( APPPATH.'views/'.$tpl_view.'/'.$body_view.'.php' ) ) { $body_view_path = $tpl_view.'/'.$body_view.'.php'; } else if ( file_exists( APPPATH.'views/'.$body_view ) ) { $body_view_path = $body_view; } else if ( file_exists( APPPATH.'views/'.$body_view.'.php' ) ) { $body_view_path = $body_view.'.php'; } else { show_error('Unable to load the requested file: ' . $tpl_name.'/'.$view_name.'.php'); } $body = $this->ci->load->view($body_view_path, $data, TRUE); if ( is_null($data) ) { $data = array('body' => $body); } else if ( is_array($data) ) { $data['body'] = $body; } else if ( is_object($data) ) { $data->body = $body; } } $this->ci->load->view('templates/'.$tpl_view, $data); } }
Menggunakan Library
Untuk memulai menggunkan library kita, kita buat view template dulu dengan nama default.php di application/views/templates,dan letakkan html/php dibawah :
<!DOCTYPE html> <html> <head> <title><?php echo $title; ?></title> </head> <body> <h1>Default template</h1> <div class="wrapper"> <?php echo $body; ?> </div> </body> </html>Dalam template ini, kita melewatkan dua variabel
$title
dan $body.
Kita buat lagi sebuah file bernama konten.php di
application/views/
dan letakkan kode simpel HTML dibawah :<p> Hello world! </p>Sekarang kita siap untuk me-load halaman view dalam controllers.
Didalam sembarang method controller, letakkan code dibawah untuk menampilkan konten view dalam default template.
$data = array( 'title' => 'Title goes here', ); $this->load->library('template'); $this->template->load('default', 'content', $data);
Note: library harus di load sebelum sobat bisa menggunakan method-method yang ada didalam library. Untuk me-load library secara otomatis, sobat bisa menambahkan array di library application/config/autoload.php.
Jika sobat ingin menambahkan string di view melalui template, sobat tinggal menambahkan $data array menggunakan kunci body dan lewatkan null pada parameter kedua saat pemanggilan load.
$data = array( 'title' => 'Title goes here', 'body' => 'The string to be embedded here!' ); $this->template->load('default', null, $data);
Silakan kasih komentar ya!!
$data = array(
ReplyDelete'title' => 'Title goes here',
);
$this->load->library('template');
$this->template->load('default', 'content', $data);
dan
$data = array(
'title' => 'Title goes here',
'body' => 'The string to be embedded here!'
);
$this->template->load('default', null, $data);
script diatas ditempatkan dimana?
dimana saja
ReplyDeletemakasih mas saya banyak belajar dari tutorial mas, semoga lancar jaya rezekinya atas ketulusannya berbagi source code
ReplyDelete