- 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