- 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