Pada kesempatan kali ini saya akan melanjutkan dari sesi penjelasan sebelumnya cara membuat library alert bootstrap di CodeIgniter Part3. Jika pada sesi sebelumnya teman-teman sudah melakukan instalasi dan konfigurasi project CodeIgniter beserta dengan pembuatan class dan property dari library alert. Pada penjelasan ini akan saya lanjutkan untuk menambahkan method untuk melengkapi library alert yang sebelumnya sudah dibuat. Sebelumnya kalian buka terlebih dahulu file Alert.php yang sebelumnya sudah dibuat didalam folder application/libraries/Alert.php. Dan buat lagi 4 (empat) buah method untuk melengkapi file library tersebut. Untuk membuatnya kalian bisa ikuti tahapan dibawah ini.
Berikut Tahapannya :
- Tambahkan 4 (empat) buah method seperti dibawah ini :
|
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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
/* * * Method untuk mengumpulkan semua alert * */ private function alert_collection() { // Ambil alert dari masing-masing type $rrs = $this->CI->session->flashdata(); $nrs = $this->data['_nr']; // Menggabungkan alert $all_alert = array_merge($rrs, $nrs); $new_alert = array(); foreach($all_alert as $key => $messages){ $i = 1; $count_message = count($messages); $str_message = ''; foreach($messages as $m){ $str_message .= $m; $str_message .= $i < $count_message ? $this->tag_after : ''; $i++; } $new_alert[$key] = $str_message; } return $new_alert; } /* * * Method untuk menampilkan semua alert * Return array */ private function show_all() { return $this->alert_collection(); } /* * * Method untuk menampilkan alert berdasarkan type * Return string */ private function show($type) { $collection = $this->alert_collection(); if(array_key_exists($type, $collection)){ return $collection[$type]; } } /* * * Method menampilkan alert untuk public * Return array/string */ public function has_alert($type = '') { if($type !== ''){ return $this->show($type); } return $this->show_all(); } |
- Sehingga dari kode yang sebelumnya sudah dibuat, kode lengkapnya akan menjadi seperti dibawah ini.
|
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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
<?php /** * Alert Class * * @package CodeIgniter * @subpackage Libraries * @category Alert / Notification * @author Brian Abraham : Dumet School * @link https://dumetschool.com */ defined('BASEPATH') OR exit('No direct script access allowed'); class Alert { private $CI; private $data; private $tag_after = '<br/>'; public function __construct() { // Copy object CI $this->CI =& get_instance(); $this->CI->load->library('session'); // Variable untuk alert non flashdata $this->data['_nr'] = array(); // Variable untuk alert flashdata $this->data['_rr'] = array(); } //Method untuk men set alert public function set($type, $message = '', $is_nr = false) { if(!$is_nr){ // Buat alert dengan menggunakan flashdata $this->data['_rr'][$type][] = $message; $this->_set_rr($type, $message); }else{ // Buat alert dengan variable biasa $this->data['_nr'][$type][] = $message; } // Return this supaya bisa chainable return $this; } //Method untuk flashdata private function _set_rr($type, $message) { foreach($this->data['_rr'] as $type => $val) { // Buat flashdata CI $this->CI->session->set_flashdata($type, $val); } } //Method untuk mengumpulkan semua alert private function alert_collection() { // Ambil alert dari masing-masing type $rrs = $this->CI->session->flashdata(); $nrs = $this->data['_nr']; // Menggabungkan alert $all_alert = array_merge($rrs, $nrs); $new_alert = array(); foreach($all_alert as $key => $messages){ $i = 1; $count_message = count($messages); $str_message = ''; foreach($messages as $m){ $str_message .= $m; $str_message .= $i < $count_message ? $this->tag_after : ''; $i++; } $new_alert[$key] = $str_message; } return $new_alert; } //Method untuk menampilkan semua alert private function show_all() { return $this->alert_collection(); } //Method untuk menampilkan alert berdasarkan type private function show($type) { $collection = $this->alert_collection(); if(array_key_exists($type, $collection)){ return $collection[$type]; } } //Method menampilkan alert untuk public public function has_alert($type = '') { if($type !== ''){ return $this->show($type); } return $this->show_all(); } } |
Keterangan : dari 4 (empat) method tersebut dimana method pertama adalah alert_collection yang berfungsi untuk mengumpulkan atau mengumpulkan semua alert. Sedangkan untuk method yang kedua dimana method show_all adalah untuk menampilkan semua alert. Dan untuk method show adalah untuk menampilkan alert berdasarkan type yang ditentukan. Sedangkan method yang terakhir adalah method has_alert untuk menampilkan alert Public.
Belum cukup sampai disini saja cara membuat library alert bootstrap di CodeIgniter Part3. Untuk tahapan selanjutnya akan saya bahas dilain kesempatan, semoga bermanfaat.