Bagaimana cara membuat custom Views dan Template Helper pada framework Codeigniter HMVC. Custom Views dan template helper ini biasa saya gunakan untuk pembuatan website mengunakan framework codeigniter.

Kenapa saya membuat sendiri template helper ini, padahal source code  sudah banyak dibuat tinggal googling Template Helper Codeigniter akan bermunculan tinggal kita pakai.

Jawabannya adalah, belum ada yang memenuhi kebutuhan saya dan biasanya para developer terlalu banyak konfigurasi yang perlu di setting. Lalu saya berpikir, bagaimana kalau saya buat saja sendiri.

Yang paling sering saya temukan pada templating di Codeigniter adalah pemisahan antara file header dan footer. Mungkin masih banyak yang berpikiran seperti templating pada wordpress atau semacamnya dimana header dan footer di bedakan di file terpisah.

Konsep yang umum digunakan

Tanpa Custom Views dan Template Helper di Codeigniter HMVC

Konsep yang saya buat

Konsep Custom Views dan Template Helper di Codeigniter HMVC

Selanjutnya bagaimana konfigurasi dari konsep yang saya buat ?

Konfigurasi application folder, system folder, dan memindahkan view folder.

  • Merubah path application dan system
  • Memindahkan view direktori ke luar folder application menjadi themes

Edit index.php di root folder

/* Cari variabel $system_path */
$system_path = 'core/system';

/* Cari variabel $application_folder */
$application_folder = 'core/application'

/* Cari variabel $view_folder */
$view_folder = "themes"

Membuat Theme Config

  • Membuat file theme_config.php  di dalam folder /core/application/config/.
  • Menambahkan autoload theme_config agar selalu dapat di akses.

1. Membuat file theme_config.php

File theme_config.php ini akan kita isi konfigurasi global yang akan kita gunakan untuk mengarahkan folder theme.

Dibawah ini adalah konfigurasi standar yang saya buat, dimana admin akan mengarahkan ke dalam folder /themes/admin dan sebagainya.

$config['theme'] = array(
   "admin" => array( 'name' => 'admin', 'file_master' => 'index.master.php'),
   "front" => array('name' => 'front', 'file_master' => 'index.master.php')
);
2. Menambahkan file theme_config.php ke dalam autoload
$autoload['config'] = array('theme_config');

Membuat theme_helper.php

  • Membuat file theme_helper.php di dalam folder /core/application/helpers/

Helper ini yang akan membantu kita dalam mengarahkan file-file view yang akan di load di controller. Isi dari theme_helper.php fungsi inti yang terdapat di dalam file ini bisa dilihat seperti dibawah ini :

public static function renderView($viewname, $type = 'front', $hmvc = false){
     $ci =& get_instance();
     $theme = $ci->config->item("theme");
     $theme_name = $theme[$type]["name"];

     /* Variabel $viewName to load in index.master.php */
        if($hmvc){
            $data['viewName'] = $data['fileName'];
        }else{
            $data['viewName'] = $theme_name.'/'.$data['fileName'];
        }

     $theme_path = 'themes/'.$theme_name;
     $file_master = $theme[$theme_name]["file_master"];

     // if theme folder not exist then redirect to 404;
     if(!is_dir($theme_path)){
         show_404();
     }
     $ci->load->view($theme_name.'/'.$file_master, $data);
}

/*
*  Untuk mengakses file-file statis di dalam folder template
*/
public static function templateUrl(){
  $ci =& get_instance();
  return  $ci->config->base_url().'themes/'.$ci->config->item("theme");
}

/* Fungsi untuk memanggils javascript file */
public static function addScript($fileUrl = ""){
....}
public static function addStyle($fileUrl = ""){
....}
Pada bagian kedua tutorial ini anda dapat mengunduh file agar dapat dipelajari. Jadi anda dapat melihat keseluruhan sourcecode yang dibuat.

Di bagian ke dua kita akan membuat :

  • Master File di dalam themes/
  • Membuat HMVC Berjalan pada theme_helper.php

Custom Views dan Template Helper di Codeigniter HMVC – Bagian 2