alert
function untuk membuat notifikasi yang ditujukan untuk pengguna baik member maupun admin
includes/function/alert.php
mengirimkan notifikasi ke member/admin atau ke global baik di admin maupun public area
alert_add($title, $description, $params = array(), $user_id='none', $group_id=0, $module = '');
- $title: String judul dari notifikasi
- $description: String isi detail dari notifikasi
- $params: Array untuk menambahkan parameter tambahan dimana key 'url' harus tersedia
- $user_id: Integer ID dari database table `bbc_user` jika dikosongkan akan mengambil dari
$user->id
- $group_id: Integer ID dari database table `bbc_user_group`
- $module: Integer ID dari database table `bbc_module` atau String untuk nama module
Contoh penggunaan
$title = 'judul';
$message = 'message description';
$params = array(
'url' => 'string (public url if user opened from member area)',
'url_admin' => 'string (admin url for admin section)'
);
$user_id = number|array(numbers)|email|admin|member|public
$group_id = number|array
## MENGIRIM KE USER TERTENTU:
// ke user dgn user_id=1
alert_add($title, $message, $params, 1);
// ke banyak user dengan user_id= 1 atau 2 atau 3
alert_add($title, $message, $params, array(1,2,3));
// ke user yang punya email tertentu
alert_add($title, $message, $params, 'danang@fisip.net');
## MENGIRIM KE ADMIN (**)
// siapapun yang login ke admin
alert_add($title, $message, $params, 'admin');
// user_id=1/2/3 yang login ke admin
alert_add($title, $message, $params, array('admin', 1, 2, 3));
## MENGIRIM KE MEMBER (**)
// siapapun yang login ke member area
alert_add($title, $message, $params, 'member');
// user_id=1/2/3 yang login ke member area
alert_add($title, $message, $params, array('member', 1, 2, 3));
## MENGIRIM KE PUBLIC (PENGUNJUNG YANG BELUM LOGIN) (**)
// siapapun yang mengunjungi web (jika block notif di pasang di template public)
alert_add($title, $message, $params, 'public');
## MENGIRIM KE GROUP USER TERTENTU (**)
// ke user yang masuk ke dalam group_id=1
alert_add($title, $message, $params, 0, 1);
// ke user dengan group_id 1/2/3
alert_add($title, $message, $params, 0, array(1,2,3));
#Keterangan:
- (**) semua akan menerima alert jika salah satu user membuka maka notif dianggap `read` bagi semua user tersebut
- jika ingin mengirim ke tiap user secara personal maka kita harus memanggil alert_add satu persatu untuk setiap user sehingga jika ada satu user membuka notif, maka notif untuk user lain status nya masih `unread`
- function ini adalah hookable function dimana bisa anda tambahkan proses di dalam module anda
untuk mengirimkan notifikasi kepada pengguna mobile app
alert_push($to, $title, $message, $module = 'content', $arguments = array(), $action = 'default');
- $to: penerima dari notifikasi yang bisa anda isi seperti:
- 0 jika diisi angka 0 (nol) maka semua pengguna aplikasi akan mendapat notifikasi
- Integer dari field ID di table `bbc_user`
- Array yang berisi kumpulan dari field ID di table `bbc_user`
- String
- username dari user yang ingin di kirim
- prefix "group:" kemudian diikuti dengan Integer dari field ID di table `bbc_user_group`
- 'userID-groupID' jika ingin mengirim ke pengguna aplikasi yg khusus user group tertentu
- Contoh kasus: user_id 1 masuk kedalam group_id 3 dan 4. Semisal 3=Driver dan 4=Penumpang
- Sedangkan aplikasi Driver dan aplikasi penumpang itu berbeda dan ingin mengirim notif ke user tersebut untuk aplikasi Driver saja
- $title: String judul notifikasi
- $message: String pesan notifikasi
- $module: String module yang dituju ketika notifikasi dibuka oleh pengguna aplikasi dengan format [namamodule]/[namatask] di mana namatask jika dikosongkan akan menuju ke index dari module tersebut
- $arguments: Array parameter yang akan dikirimkan ke $module di dalam aplikasi tersebut
- $action: String identifikasi jika ada penambahan action dimana notifikasi tersebut akan diperlakukan secara berbeda mengikuti script yang ada di mobile app nya
function ini hanya menyimpan data message yang akan dikirimkan, sedangkan pengiriman nya akan di lakukan secara background pada function
alert_push_send untuk menjaga performa system dan stabilitas server. Sedangkan setiap notifikasi ketika di baca oleh user maka anda HARUS mengkonfirmasi kembali bahwa message atau notif tersebut telah terbaca ke URL dari domain yang mengirim notif semisal domain nya adalah aku.com maka url yang perlu anda akses adalah url
aku.com/user/push-read
dengan parameter POST notif_id dan secretkey.
sedangkan untuk mengkases daftar notifikasi bisa diambil dari url
aku.com/user/push-notif
menggunakan method POST dengan parameter:
$user_id = [opsional]
$group_id = [opsional]
$last_id = [opsional] ID notifikasi yang paling terakhir diambil (Method: GET)
$secretkey = _class('crypt')->encode(_SALT.'|'.date()'Y-m-d H:i:s');
$group_id jika dikosongkan atau tidak ada maka daftar notifikasi yang di listkan adalah semua notifikasi untuk user tersebut, tidak perduli dia berada di group user apapun
untuk key 'secretkey' sendiri adalah hasil encode dari format
_SALT.'|'.yyyy-mm-dd HH:ii:ss
function yang otomatis akan dipanggil ketika alert_push dieksekusi
alert_push_send($id, $last_id);
- $id: Integer dari field ID di table `bbc_user_push_notif` yang akan menentukan data apa yang akan dikirimkan oleh system
- $last_id: Integer dari field ID di table `bbc_user_push` yang akan menentukan user terakhir yang telah menerima notifikasi tersebut
function ini dipanggil otomatis oleh system, jadi anda tidak perlu menggunakan function ini ketika ingin mengirimkan notifikasi, yang perlu anda gunakan adalah function
alert_push dimana function tersebut secara otomatis akan mengeksekusi function ini satu per satu untuk tiap pengguna aplikasi mobile
meyimpan data token dari para pengguna aplikasi mobile yang terintegrasi dengan project yang anda buat
alert_push_signup($token, $user_id, $group_ids, $username, $device, $os, $push_id = 0);
- $token: String, token yang di dapatkan ketika pertama kali membuka aplikasi mobile
- $user_id: Integer, ID dari table `bbc_user` jika ada (bisa jadi satu user_id bs memiliki banya device)
- $group_ids: String, ID dari group user dan jika lebih dari satu group_id maka akan dipisahkan dengan koma
- $username: String, username untuk login ke website
- $device: String, nama device seperti iphoneX, nexus 6p atau yg lain
- $os: String, nama os yang digunakan seperti android/ios dll.
- $push_id: Integer, isikan 0, jika tidak maka data di atas akan mereplace data yang ada di dalam table `bbc_user_push` dengan ID dari $push_id ini
Fungsi ini adalah
hookable function, jadi anda bisa membuat function di dalam module yang anda buat sendiri untuk menambahkan proses penyimpanan token, semisal ingin mengkelompokkan user berdasarkan category, wilayah atau lainya,
adapun argument dari function anda sendiri sama persis seperti function ini, hanya saja pada $push_id akan terisi ID yang baru saja dimasukkan
Return dari function ini adalah $push_id yaitu ID dari table `bbc_user_push` yang barusan dimasukkan ke dalam table atau id yang diedit saat itu
Untuk mengakses function ini dari URL anda bisa mem-POST-kan parameter ke url
domainanda/user/push-token
lalu valriable POST nya adalah:
$user_id = [opsional]
$group_id = [opsional] comma separated or Array
$username = [opsional]
$token = [wajib]
$push_id = [optional] ID dari hasil return push-token sebelumnya untuk diupdate
$old_id = [optional] ID dari hasil return push-token sebelumnya untuk dihapus
$device = [optional] nama atau jenis device yang digunakan untuk membuka app
$os = [optional] nama atau jenis os yang digunakan untuk membuka app
$secretkey = _class('crypt')->encode(_SALT.'|'.date()'Y-m-d H:i:s');
dengan return nya berupa array:
{"ok": 1,
"message": "success",
"result": "integer ID dari table `bbc_user_push`"
}
sedangkan untuk mengirimkan notificationnya, anda bisa menggunakan function
alert_push
menampilkan pesan ke daftar notifikasi jika ada notifikasi baru
alert_view($data);
- $data: Array data row dari database table `bbc_alert`
function ini adalah
hookable function dimana bisa anda tambahkan proses di dalam module anda