- 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.
1
| $ This -> Template-> load ( 'TEMPLATE_NAME' , 'body_view' ); |
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.
1
| $ This -> load-> library ( 'nama_kelas' ) |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| <?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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <!DOCTYPE html><html> <head> <title><?php echo $title; ?></title> </head> <body> <h1>Default template</h1> <div class="wrapper"> <?php echo $body; ?> </div> </body> </html> |
$title dan $body.Kita buat lagi sebuah file bernama konten.php di
application/views/ dan letakkan kode simpel HTML dibawah :
1
2
3
| <p> Hello world!</p> |
Didalam sembarang method controller, letakkan code dibawah untuk menampilkan konten view dalam default template.
1
2
3
4
5
6
7
8
| $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.
1
2
3
4
5
6
7
8
| $data = array( 'title' => 'Title goes here', 'body' => 'The string to be embedded here!' ); $this->template->load('default', null, $data); |


0 comments:
Post a Comment