user
function untuk management member pada framework
includes/function/user.php
mengindentifikasi user jika belum login, dia harus menggunakan account social media mereka untuk mendapatkan image profile dari pengunjung tersebut
user_auth($data = array());
- $data: Ada dua pilihan
- Array yang berisi data profile dari pengunjung dengan minimal index key
- String jika ingin mengganti text pesan ketika tombol social media ditampilkan
Untuk contoh penggunaan bisa dilihat di modules/testimonial/form.php
digunakan untuk login otomatis ketika user sudah pernah login di public area dan mencentang checkbox "remember me"
user_auto_login();
function ini akan berjalan dengan beberapa syarat:
- user sebelumnya pernah login di public area dengan mencentang checkbox "remember me"
- user menggunakan browser yang sama dengan yang digunakan untuk login sebelumnya
- browser yang digunakan oleh user tidak memblock website untuk menulis cookie
- user mengunjungi website kembali (setelah login) dalam jangka waktu yang tidak terlalu lama
meng-eksekusi semua function dengan postfix tertentu di semua module yang tersedia. Biasanya digunakan pada hookable function
user_call_func($funcname[, $arg1[, $arg2[, $arg3...]]]);
- $funcname: String postfix nama function yang akan dipanggil
- $arg1: Object yang akan dijadikan argument ke 1 ketika mengeksekusi function yang ditemukan
- $arg2: Object yang akan dijadikan argument ke 2 ketika mengeksekusi function yang ditemukan
- $arg3: Object yang akan dijadikan argument ke 3 ketika mengeksekusi function yang ditemukan
- ...: Object selanjutnya jika ada lagi
biasanya function ini dieksekusi ketika anda membuat
hookable function semisal di dalam function anda ada script di bawah (dalam module "coba"):
user_call_func('coba_foo', $str1, $str2);
maka script tersebut akan mencari di semua module yang memiliki function
[namamodule]_coba_foo
yang tentu saja function tersebut harus di taruh di file "modules/[namamodule]/_function.php" untuk lebih jelasnya silahkan mempelajari
hookable function
Untuk perihal validasi yang biasanya digunakan sebelum menggunakan function ini, anda bisa menggunakan
user_call_func_validate
meng-eksekusi semua function dengan postfix tertentu di semua module yang tersedia. Untuk validasi TRUE/FALSE
user_call_func_validate($funcname[, $arg1[, $arg2[, $arg3...]]]);
- $funcname: String postfix nama function yang akan dipanggil
- $arg1: Object yang akan dijadikan argument ke 1 ketika mengeksekusi function yang ditemukan
- $arg2: Object yang akan dijadikan argument ke 2 ketika mengeksekusi function yang ditemukan
- $arg3: Object yang akan dijadikan argument ke 3 ketika mengeksekusi function yang ditemukan
- ...: Object selanjutnya jika ada lagi
biasanya function ini dieksekusi ketika anda membuat
hookable function semisal di dalam function anda ada script di bawah (dalam module "coba"):
$check = user_call_func_validate('coba_check', $str1, $str2);
if($check) {echo "Validasi berhasil";
}else{echo msg(user_create_validate_msg(), 'danger');
}
maka script tersebut akan mencari di semua module yang memiliki function
[namamodule]_coba_check
yang tentu saja function tersebut harus di taruh di file "modules/[namamodule]/_function.php" untuk lebih jelasnya silahkan mempelajari
hookable function
PERHATIAN:
- tidak seperti function user_call_func, function ini HARUS me-return kan BOOLEAN yaitu TRUE atau FALSE. Ketika anda tidak me-return kan apapun maka framework akan menganggap bahwa return nya adalah FALSE
- Itu artinya script akan berhenti mengeksekusi function yang ditemukan selanjut nya karena dianggap validasi gagal
- Jika anda ingin meng-outputkan pesan error anda bisa menggunakan function user_create_validate_msg
function untuk membuat user baru dimana akan dimasukkan kedalam database table `bbc_user` dan `bbc_account`
user_create($params);
- $params: Array yang akan digunakan sebagai profile untuk membuat user baru
function ini akan me-return kan Integer ID dari table `bbc_user` yang baru dibuat.
untuk contoh pembuatan variable $params adalah:
$params = array(
'username' => ***, || // OR empty for email as username...
'password' => ***, || // OR empty for random password...
'name' => 'Danang Widiantoro',
'email' => 'danang@fisip.net',
'params' => Array, // depends on user_field()
'group_ids' => array() || '2,1,4' || // OR empty for default group ids...
);
function ini adalah
hookable function dimana bisa anda tambahkan proses di dalam module anda
function untuk memanggil semua [namamodule]_user_create_validate sebelum ditambahkan ke dalam database table `bbc_user` dan `bbc_account` yang akan mereturn kan boolean. Jika return adalah FALSE maka user tidak akan dibuat
user_create_validate($data);
- $data: Array yang diinputkan ketika function user_create dipanggil
function ini adalah
hookable function dimana bisa anda tambahkan proses di dalam module anda
function untuk menyimpan atau menampilkan pesan error / error message di dalam function yang meng hook user_call_func_validate
user_create_validate_msg($msg='');
- $msg: String error message atau pesan error yang ingin di tambahkan, atau bisa anda kosongkan (tidak menggunakan argument) untuk mer-return kan semua pesan yang telah di tambahkan sebelumnya
function ini biasanya digunakan di dalam function yang anda buat untuk meng-hook
hookable function dari
user_call_func_validate
Contoh penggunaan untuk menyimpan pesan error:
user_create_validate_msg('pesan error1');
lalu
user_create_validate_msg('pesan error2');
Dan berikut cara mengambil semua pesan yang telah ditambahkan tadi
echo msg(user_create_validate_msg(), 'danger');
untuk menghapus data member berdasarka ID dari database table `bbc_user`
user_delete($user_ids);
- $user_ids: Integer / Array berupa ID dari database table `bbc_user` untuk menentukan user apa saja yang akan dihapus
function ini adalah
hookable function dimana bisa anda tambahkan proses di dalam module anda
untuk mengambil alamat email dari user
user_email($id = 'none', $is_user_id = true);
- $id: Integer ID dari database table `bbc_user` atau `bbc_account`
- $is_user_id: Boolean jika $id adalah ID dari database table `bbc_user` maka harus diisi TRUE, jika $id adalah ID dari database table `bbc_account` maka harus diisi FALSE
mengambil detail data dari user
user_fetch($user_id);
- $user_id: Integer ID dari database table `bbc_user`
function ini akan memiliki index key yang dinamis karena framework mensupport penambahan field secara otomatis memalui database, hal ini bisa di setting di admin panel di menu "Control Panel / User Manager / User Fields" dan jika anda ingin menentukan field khusus untuk group user tertentu anda bisa menentukan di "Control Panel / User Group" lalu edit salah satu user kemudian tentukan "Yes" untuk pilihan "Custom Field" jika anda "save" maka di bawah form akan muncul daftar field yang bisa anda tentukan sendiri
mengambil Array field-field yang tersedia untuk user tertentu
user_field($user_id = 0, $group_id = 0);
- $user_id: Integer ID dari database table `bbc_user`
- $group_id: Integer ID dari user group yaitu di database table `bbc_user_group`
Jika $user_id dan $group_id dikosongkan maka akan mengambil ID user group default di mana user group default ini bisa disetting di admin panel "Control Panel / Configuration" pada tab "Rules" field "User Groups"
Settingan ini juga menentukan di group mana user yang baru register akan dimasukkan, sedangkan fungsi dari user group ini adalah untuk menentukan privilege menu apa saja yang boleh diakses dan block mana saja yang akan ditampilkan
mengambil Array field-field yang tersedia untuk group user tertentu
user_field_group($group = '');
- $group: String dari ID user group di database table `bbc_user_group` atau bisa banyak ID yang dipisahkan dengan koma (,). atau juga bisa Array dari ID user group
Jika $group dikosongkan maka akan mengambil ID user group default di mana user group default ini bisa disetting di admin panel "Control Panel / Configuration" pada tab "Rules" field "User Groups"
Settingan ini juga menentukan di group mana user yang baru register akan dimasukkan, sedangkan fungsi dari user group ini adalah untuk menentukan privilege menu apa saja yang boleh diakses dan block mana saja yang akan ditampilkan
function untuk membuat HTML input agar menjadi popup gmap untuk point location. jadi apabila di klik akan muncul pop up untuk menentukan Latitude longitude di dalam google map
user_location($click_ids, $id_area, $alert = '');
- $click_ids:
- String kumpulan jQueryID yang dipisahkan dengan koma (jika lebih dari satu)
- Array kumpulan jQueryID untuk mengidentifikasi element HTML mana yang jika diklik atau focus bakal muncul popup untuk pilih location latitude longitude
- $id_area: String jQueryID untuk menunjuk input mana yang akan menentukan lokasi/wilayah agar google map pada popup bisa lebih spesifik
- $alert: String menentukan text yang akan muncul jika input dari $id_area masih kosong
Maksud dari
jQueryID adalah selector dari jQuery itu sendiri, atau anda bisa mempelajari contoh script di bawah
PHP:
link_js(_LIB.'pea/includes/FormTags.js', false);
$location_token = array(
'table' => 'table_location',
'field' => 'detail',
'id' => 'id',
'sql' => 'publish=1 AND type=3',
'expire' => strtotime('+2 HOURS'),
);
HTML:
<form action=http://localhost/mlm/"" method="POST" class="form-horizontal" role="form">
<div class="form-group">
<legend>Form Lokasi Posisi</legend>
</div>
<div class="form-group location_id">
<label>Lokasi</label>
<input type="text" rel="ac" data-token="<?php echo encode(json_encode($location_token)); ?>" name="params[location_id]" class="form-control" placeholder="Kecamatan / Kota" />
<p class="help-block"> Masukkan kecamatan / kota di atas</p>
</div>
<div class="form-group">
<label>Posisi Domisili</label>
<div class="form-inline">
<input type="text" name="params[location_latlong]" class="form-control" placeholder="Latitude Longitude" />
<div class="input-group">
<a href="#marker" class="btn btn-default btn-sm gmap_marker">
<i class="glyphicon glyphicon-map-marker" title="map marker"></i>
</a>
</div>
</div>
<p class="help-block"> Masukkan latitude Longitude posisi tepat yang anda maksud</p>
</div>
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<button type="submit" name="submit" value="Simpan" class="btn btn-primary">Simpan</button>
</div>
</div>
</form>
PHP Cara penggunaan fungsi ini:
echo user_location('[name=params\\[location_latlong\\]], .gmap_marker', '.ac_input');
argument pertama adalah jQueryID untuk input latlong dan icon symbol gmap
argument kedua adalah jQueryID input lokasi, alasan menembak class input nya karena input lokasi tersebut sudah menggunakan javascript lain yang telah diolah, sehingga yang di point/tandai adalah jQueryID dari hasil akhir HTML nya
function yang akan dipanggil oleh framework ketika ada pengunjung yang login baik itu di admin panel maupun public area
user_login($username, $password, $is_admin = 0, $rememberme = 0);
- $username: String username yang ada pada database table `bbc_user`
- $password: String password
- $is_admin: Boolean / Integer apakah login ke admin panel ataukah tidak
- $rememberme: Boolean / Integer apakah status login ingin di simpan ke dalam cookie browser atau tidak agar tidak perlu login lagi selama browser tidak mem-block website tersebut untuk membuat cookie
function ini adalah
hookable function dimana bisa anda tambahkan proses di dalam module anda
function yang akan dieksekusi oleh framework ketika ada member yang logout dari admin panel maupun member area
user_logout($user_id, $is_admin = 0);
- $user_id: Integer ID dari database table `bbc_user`
- $is_admin: Boolean / Integer apakah member logout dari admin ataukan public area
function ini adalah
hookable function dimana bisa anda tambahkan proses di dalam module anda
mengambil semua nama module yang tersedia pada prodkect
user_modules($file='_function');
- $file: String nama file sebagai validasi, jika pada module tidak tersedia namafile tersebut maka module tersebut tidak masuk dalam Array yang di outputkan
untuk mengambil nama dari user
user_name($code = 'none', $field = 'name');
- $code: untuk penggunaan nya ada beberapa tipe input
- dikosong kan atau tidak menggunakan argument ini maka akan mengambil nama dari user yang saat itu login
- Integer ID dari database table `bbc_user` dan mengoutput kan namanya
- String:
- Jika berformat email maka akan mencari di db table `bbc_account` field `email`
- jika format selain email maka akan mencari di db table `bbc_user` field `username`
- $field: String nama field pada database table `bbc_account` yang ingin di tampilkan, dimana secara default adalah field `name`
untuk mengirimkan email pengingat mengenai account login pada website
user_reminder($email, $is_send = true);
- $email: String alamat email yang terdapat pada database table `bbc_user` di field `username` atau `bbc_account` di field `email`
- $is_send: Boolean apakah content / isi email dikirimkan langsung ke email user ataukah hanya di returnkan untuk di olah lebih lanjut
adapun isi dari email bisa anda tentukan di admin panel "Control Panel / Email Template" di module "user" dengan nama template "password"