- 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