Pertama yang akan kita lakukan adalah membuat public controller terlebih dahulu.
Apa itu public controller? Public controller adalah base controller yang digunakan untuk membuat halaman public. Tidak ada special dalam hal ini, kita cuma menggunakan file index.php CI yang terletak pada direktori CI. Berarti dalam tahap ini tidak ada yang berubah. :')
Kemudian, Membuat Controller Admin
Caranya adalah dengan membuat direktori baru di direktori utama CI, ambil contoh kita beri nama folder app_admin.
Folder tersebut yang nantinya akan menjadi tujuan ketika admin sudah login. Di dalam direktori tersebut kita isi dengan :
a. file index.php dengan mangcopy file index.php di direktory utama.
b. folder application, kita copy-kan dari direktory utama juga.
c. file .htaccess untuk menghilangkan index.php di url browser.
Kemudian, kita setting sebagai berikut :
a. Di file index.php yang baru kita edit pada baris
$system_path = 'system';
- diedit, menjadi
$system_path = '../system';
b. Pada folder application yang baru, kita buat base controller untuk admin. Kita bikin library controller baru untuk meng-override base controller CI. Caranya, buat class : misal Adm_Controller.php, yang isinya :
Tidak lupa kita edit pada file config.php di /app_admin/application/config/config.php,
di bagian
Dengan begitu, maka setiap controller baru di folder /app_admin/application/controller/ harus meng-extends Adm_Controller di atas sehingga cuma bisa diakses oleh user admin.
c. Atur .htaccess (optional) sehingga URL Anda terlihat lebih cantik. Kode untuk file .htaccess kurang lebih seperti berikut :
Kesimpulan :
a. Dengan CI, kita bisa membuat banyak application (nama berbeda-beda) dengan cuma pakai satu folder system.
b. Semua application tersebut tergantung pada file index.php dan file index.php itu pun bisa diganti dan dipindah lokasinya yang penting di dalamnya diatur tentang dimana Anda meletakkan folder system dan folder applicationnya.
Bahan Bacaan :
- http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-base-Classes-Keeping-it-DRY (Pembahasan HMVC oleh si-empunya CI)
- http://ellislab.com/codeigniter/user-guide/installation/index.html (Dan tentu saja user_guide CI.)
kemudian simpan pada direktory /app_admin/application/core/Adm_Controller.php.<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');class Adm_Controller extends CI_Controller{public function __construct(){parent::__construct();$this->load->library('Lib_Auth');if (!$this->lib_auth->is_logged()){show_error('whooops, Anda dilarang masuk.');}//intinya memberitahu kalau itu cuma buat admin.}
Tidak lupa kita edit pada file config.php di /app_admin/application/config/config.php,
di bagian
$config['subclass_prefix'] = 'My_';menjadi
$config['subclass_prefix'] = 'Adm_';atau terserah Anda sesuai dengan prefix yang tadi saya gunakan yaitu Adm_.
Dengan begitu, maka setiap controller baru di folder /app_admin/application/controller/ harus meng-extends Adm_Controller di atas sehingga cuma bisa diakses oleh user admin.
?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');class MyTools extends Adm_Controller {public function __construct(){parent::__construct();//other constuctor code}
c. Atur .htaccess (optional) sehingga URL Anda terlihat lebih cantik. Kode untuk file .htaccess kurang lebih seperti berikut :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /app_admin/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>Sebagai tambahan, anda buat controller : login.php di folder application public dan jika login berhasil. langsung route ke /app_admin/index.php atau cukup dengan http://app_url/app_admin/ saja dan user akan dibawa ke controller welcome.php di dalam folder /app_admin/controller/ dan tinggal kita atur settingan lainnya di folder confignya.
Kesimpulan :
a. Dengan CI, kita bisa membuat banyak application (nama berbeda-beda) dengan cuma pakai satu folder system.
b. Semua application tersebut tergantung pada file index.php dan file index.php itu pun bisa diganti dan dipindah lokasinya yang penting di dalamnya diatur tentang dimana Anda meletakkan folder system dan folder applicationnya.
Bahan Bacaan :
- http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-base-Classes-Keeping-it-DRY (Pembahasan HMVC oleh si-empunya CI)
- http://ellislab.com/codeigniter/user-guide/installation/index.html (Dan tentu saja user_guide CI.)
Tidak ada komentar:
Posting Komentar