function server_admin_add() { extract($_REQUEST); $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Servers'); $lilo_mongo->selectCollection('GameServer'); if ($submitted == 1) { $game_server = array('name' => $server_admin_add_name, 'ip' => $server_admin_add_ip, 'port' => $server_admin_add_port, 'max_ccu' => $server_admin_add_max_ccu); $game_server_id = $lilo_mongo->insert($game_server); $lilo_mongo->update($game_server, array_merge($game_server, array('lilo_id' => (string) $game_server_id)), array("multiple" => false)); } $_SESSION['pop_status_msg'][] = "New server added."; header("Location: " . $_SESSION['basepath'] . 'server/admin'); exit; }
function message_guest_shout($session_id = NULL, $shout = NULL, $circle = '') { // hanya menerima $_POST // variable yg diterima: // - session_id: diproses hanya jika session_id masih valid & aktif, meskipun nanti yg disimpan di db adalah user_id // - circle: '', 'public', [circle_name_1], [circle_name_2] // - shout = text status if (!isset($session_id) || trim($session_id) == '') { // dapatkan $session_id dari $_POST $session_id = $_POST['session_id']; } if (!isset($session_id) || trim($session_id) == '') { $session_id = $_SESSION['session_id']; } if (!isset($shout) || trim($shout) == '') { $shout = $_POST['shout']; } if (!isset($circle) || trim($circle) == '') { $circle = $_POST['circle']; } // cek apakah $session_id masih berlaku: Users.Session.time_end == '' || strtotime() - strtotime(Users.Session.time_end) < 3 * 60; $user_id = message_guest_sessionvalidation($session_id); if (!$user_id || trim($user_id) == '') { write_log(array('log_text' => "Invalid session_id: {$session_id}")); return "ERROR - Validation failed."; } $shout = trim($shout); if ($shout == '') { return "ERROR - Shout should not be empty."; } $mentioned_friends = message_guest_mentionedfriends($shout); if (strlen($shout) > 500) { $shout = substr($shout, 0, 500); } $shout = htmlspecialchars($shout); $shout = message_guest_shoutlinktomentioneduser($shout); $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Social'); $lilo_mongo->selectCollection('Shout'); $shout_data = array('user_id' => $user_id, 'shout_time' => date("Y-m-d - H:i:s"), 'shout' => $shout, 'circle' => $circle, 'mentioned_friends' => $mentioned_friends, 'mentioned_friends_notified' => 0); // notify mentioned friends dengan CRON $lilo_id = $lilo_mongo->insert($shout_data); $lilo_mongo->update($shout_data, array_merge($shout_data, array('lilo_id' => (string) $lilo_id)), array("multiple" => false)); return "OK"; }
function mobile_query_setconfavatar() { $user_email = func_arg(0); $id_user = _get_id_user($user_email); $get_type = func_arg(1); $get_field = func_arg(2); $get_field = $get_field == "all" ? "" : $get_field; $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Users'); $lilo_mongo->selectCollection('Avatar'); $filter = array("user_id" => $id_user); $data = $lilo_mongo->findOne($filter); $datareturn['isSuccsesUpdate'] = FALSE; if ($data) { $datatinsert = array(); $datareturn['isSuccsesUpdate'] = TRUE; if ($get_type == "configurations") { $conf = json_decode(str_replace("'", '"', $data['configuration'])); if ($get_field != "") { if (strtolower($get_field) == "all") { $datanew = ""; $temp = isset($_GET['massage']) ? $_GET['massage'] : ""; $datatemparray = explode("|", $temp); if ($datatemparray) { foreach ($datatemparray as $jml_json) { $datanew .= "{"; $datatemp = explode(",", $jml_json); if ($datatemp) { foreach ($datatemp as $dttemp) { $dtinsert = explode(":", $dttemp); $key = $dtinsert[0]; $value = isset($dtinsert[1]) ? $dtinsert[1] : ""; $datanew .= "'" . $key . "':'" . $value . "',"; } $datanew = substr($datanew, 0, strlen($datanew) - 1); } $datanew .= "},"; } $datanew = substr($datanew, 0, strlen($datanew) - 1); } $datatinsert = array("configuration" => "[" . $datanew . "]"); } else { foreach ($conf as $dt => $listtemp) { if ($listtemp->tipe == $get_field) { continue; } $datanew .= "{"; foreach ($listtemp as $dt_json => $value_key) { $datanew .= "'" . $dt_json . "':'" . $value_key . "',"; } $datanew = substr($datanew, 0, strlen($datanew) - 1); $datanew .= "},"; } $datanew .= "{"; $datamessage = isset($_GET['massage']) ? $_GET['massage'] : ""; $datajson = explode(",", $datamessage); if ($datajson) { foreach ($datajson as $dttemp) { $dtinsert = explode(":", $dttemp); $key = $dtinsert[0]; $value = isset($dtinsert[1]) ? $dtinsert[1] : ""; $datanew .= "'" . $key . "':'" . $value . "',"; } $datanew = substr($datanew, 0, strlen($datanew) - 1); } $datanew .= "}"; $datatinsert = array("configuration" => "[" . $datanew . "]"); } } } else { if ($get_type == "size") { $datasize = isset($_GET['massage']) ? $_GET['massage'] : "medium"; $datatinsert = array("size" => $datasize); } } $lilo_mongo->update_set($filter, $datatinsert); } else { $size = "medium"; $gender = "female"; $lilo_mongo->selectDB("Assets"); $lilo_mongo->selectCollection("DefaultAvatar"); $data3 = $lilo_mongo->findOne(array('gender' => $gender, 'size' => $size)); if ($data3) { $lilo_mongo->selectDB('Users'); $lilo_mongo->selectCollection('Avatar'); $lilo_mongo->update(array("size" => $size, "user_id" => $id_user), array('$set' => array("configuration" => $data3['configuration'])), array('upsert' => TRUE)); } } return json_encode($datareturn); }
function friend_user_ws_invitation_approval($args = NULL) { if (!isset($args)) { $args = $_REQUEST; } extract($args); // $invitation_id, $circle_array // masukkan ke tabel Friends // 2 record: // 1. inviter -> invitee: circle sesuai data di table FriendInvitations // 2. invitee -> inviter: circle sesuai $circle_array // dapatkan data dari FriendInvitations $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Social'); // Social: Circles, Friends, FriendInvitations, PersonalMessages, Shout $lilo_mongo->selectCollection('FriendInvitations'); // FriendInvitation: lilo_id, inviter_user_id, invitee_user_id, circle_array, invite_time $invitation_detail = $lilo_mongo->findOne(array('lilo_id' => $invitation_id)); // sampe seneee... // return print_r($invitation_detail, true); /* Array ( [inviter_user_id] => 4e1df4c1c1b4bab417000000 [invitee_user_id] => 4df6e7192cbfd4e6c000fd9b [circle_array] => Array ( [0] => Acquaintance ) [invite_time] => 1316761193 [_id] => MongoId Object ( [$id] => 4e7c2e69c1b4ba7409000002 ) [lilo_id] => 4e7c2e69c1b4ba7409000002 ) */ $lilo_mongo->selectCollection('Friends'); // Friends: user_id, friend_id, circle_array, approval_time $approval_time = time(); // inviter -> invitee $inviter_to_invitee_data = array('user_id' => $invitation_detail['inviter_user_id'], 'friend_id' => $invitation_detail['invitee_user_id'], 'circle_array' => $invitation_detail['circle_array'], 'approval_time' => $approval_time); $friends_id = $lilo_mongo->insert($inviter_to_invitee_data); $lilo_mongo->update($inviter_to_invitee_data, array_merge($inviter_to_invitee_data, array('lilo_id' => (string) $friends_id)), array("multiple" => false)); // invitee -> inviter $invitee_to_inviter_data = array('user_id' => $invitation_detail['invitee_user_id'], 'friend_id' => $invitation_detail['inviter_user_id'], 'circle_array' => $circle_array, 'approval_time' => $approval_time); $friends_id = $lilo_mongo->insert($invitee_to_inviter_data); $lilo_mongo->update($invitee_to_inviter_data, array_merge($invitee_to_inviter_data, array('lilo_id' => (string) $friends_id)), array("multiple" => false)); // hapus dari table FriendInvitations $lilo_mongo->selectCollection('FriendInvitations'); // FriendInvitation: lilo_id, inviter_user_id, invitee_user_id, circle_array, invite_time $lilo_mongo->remove(array('lilo_id' => $invitation_id)); return '1'; }
function user_user_add_lilo_id_to_users() { // loop semua row di table users // tambahkan field lilo_id di tiap row tersebut $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Users'); $lilo_mongo->selectCollection('Account'); $users_cursor = $lilo_mongo->find(array()); while ($curr = $users_cursor->getNext()) { if (trim($curr['lilo_id']) == '') { $ret .= "<br />" . print_r($curr, true) . "<br />"; $lilo_id = (string) $curr['_id']; $lilo_mongo->update($curr, array_merge($curr, array('lilo_id' => (string) $lilo_id)), array("multiple" => false)); } } return "beres..." . $ret; }
function asset_admin_inventory() { // CRUD for Assets.Inventory $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Assets'); $lilo_mongo->selectCollection('Inventory'); // delete $delete = trim($_REQUEST['delete']); if ($delete != '') { $lilo_mongo->delete(array('lilo_id' => $delete)); return "1"; } // detail $detail = trim($_REQUEST['detail']); if ($detail != '') { $data = $lilo_mongo->findOne(array('lilo_id' => $detail)); return json_encode($data); } // new_inventory $new_inventory = trim($_REQUEST['new_inventory']); if ($new_inventory == "1") { extract($_POST); // tipe, description, icon if (trim($tipe) != '') { $inventory_data = array('tipe' => $tipe, 'description' => $description, 'icon' => $icon); $lilo_id_ = $lilo_mongo->insert($inventory_data); $lilo_mongo->update($inventory_data, array_merge($inventory_data, array('lilo_id' => (string) $lilo_id_)), array("multiple" => false)); } } // dapatkan data Assets.Inventory $inventory_array = $lilo_mongo->find(); $html = ''; $template = new Template(); $template->basepath = $_SESSION['basepath']; $template->inventory_array = $inventory_array; $html = $template->render("modules/002_asset_management/templates/asset_admin_inventory.php"); $html = ui_admin_default(NULL, $html); return $html; }
function message_user_shout_reply() { /* die(print_r($_REQUEST, true)); Array ( [q] => message/user/shout_reply [comment] => Reply to testsdfsdfsdfsdf [circle] => [shout_id] => 4fa0897cc1b4ba341b000000 [__utma] => 111872281.1470462402.1327380803.1336389708.1336418449.37 [__utmz] => 111872281.1327380803.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none) [MANTIS_STRING_COOKIE] => d51124df32701606e74f6e86a7da46f7bfb7835038e6ea4748643db7e4c2f0c0 [POSTNUKESID] => d365816dbaef684d8522d130c239fc29 [PHPSESSID] => ibi020pgc7hiesda9dmih8gip1 [__utmc] => 111872281 [__utmb] => 111872281.0.10.1336418449 ) */ extract($_REQUEST); if (!isset($shout_id)) { die("Error"); } if (trim($comment) == '') { die('Error: empty comment'); } $user_id = $_SESSION['user_id']; $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Social'); $lilo_mongo->selectCollection('ShoutComment'); $reply_data = array('shout_id' => $shout_id, 'datetime' => date("Y-m-d - H:i:s"), 'comment' => $comment, 'time' => time()); $lilo_id = $lilo_mongo->insert($reply_data); $lilo_mongo->update($reply_data, array_merge($reply_data, array('lilo_id' => (string) $lilo_id)), array("multiple" => false)); // delete all related comments print "OK"; exit; }
function asset_admin_lobbysetting($op = null, $ip = null, $port = null, $ret_type = null, $room_history = null) { if (!isset($op)) { $op = func_arg(0); } if (!isset($ip)) { $ip = func_arg(1); } if (!isset($port)) { $port = func_arg(2); } if (!isset($ret_type)) { $ret_type = func_arg(3); } if (!isset($room_history)) { $room_history = func_arg(4); } // die("$op, $ip, $port"); // Data: set, 127.0.0.1, 12027 $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Game'); $lilo_mongo->selectCollection('LobbySetting'); switch (trim(strtolower($op))) { case 'get': $lobbysetting = $lilo_mongo->findOne(); if ($ret_type == 'array') { return $lobbysetting; } else { // default: json return json_encode($lobbysetting); } break; case 'set': if (isset($ip) && isset($port)) { $data = array('ip' => $ip, 'port' => $port, 'room_history' => $room_history); $lilo_mongo->update(array(), $data, array('upsert' => true)); return 'OK'; } break; } }
function quest_admin_ws_dialogstory($op = NULL, $id = NULL, $data = NULL) { // quest/admin/ws_dialogstory => list all dialog_story // quest/admin/ws_dialogstory/read => -- idem -- // quest/admin/ws_dialogstory/create => menerima $_POST untuk dimasukkan ke db // quest/admin/ws_dialogstory/update/$id => menerima $_POST untuk update dialog_story dgn id = $id // quest/admin/ws_dialogstory/delete/$id => menghapus dialog_story dgn id = $id if (!isset($op)) { $op = func_arg(0) != '' ? func_arg(0) : 'read'; } $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Game'); // Game: DialogStory, Dialog, DialogOption, Quest $lilo_mongo->selectCollection('DialogStory'); switch ($op) { case 'create': // sementara baru data di Game.DialogStory dulu belum sampe ke anak2nya... if (!isset($data)) { // data = array(name, description); $data = $_POST; } // return $data['all_variable']; if (!isset($data['name'])) { return false; } // $data['all_variable'] = parse_str($data['all_variable']); $a = explode('&', $data['all_variable']); $i = 0; while ($i < count($a)) { $b = split('=', $a[$i]); // echo 'Value for parameter ', htmlspecialchars(urldecode($b[0])), // ' is ', htmlspecialchars(urldecode($b[1])), "<br />\n"; $i++; $key = urldecode($b[0]); $val = urldecode($b[1]); // option_content_quest_ if (substr($key, 0, 21) == 'option_content_quest_') { $val_expl = explode('-', $val); $val = trim($val_expl[0]); } $data['all_variable_2'][$key] = $val; } $dialog_story_id = $lilo_mongo->insert($data); $lilo_mongo->update($data, array_merge($data, array('lilo_id' => (string) $dialog_story_id)), array("multiple" => false)); return "1"; //$dialog_story_id; break; case 'update': // sementara baru data di Game.DialogStory dulu belum sampe ke anak2nya... if (!isset($id)) { $id = func_arg(1); } if (!isset($data)) { // data = array(name, description); $data = $_POST; } $lilo_mongo->update(array('lilo_id' => $id), $data, array("multiple" => false)); return "1"; break; case 'delete': if (!isset($id)) { $id = func_arg(1); } $lilo_mongo->delete(array('lilo_id' => $id)); return "1"; break; } // op == 'read' $dialog_stories = array(); $dialog_stories_cursor = $lilo_mongo->find(); while ($dialog_story = $dialog_stories_cursor->getNext()) { $dialog_stories[] = $dialog_story; } // return json_encode($dialog_stories); $dialog_stories = json_encode($dialog_stories); return $dialog_stories; // return str_replace('"', "'", $dialog_stories); }
function user_guest_login($uname = NULL, $passwd = NULL) { // bisa diakses lewat web dgn path: /user/user/login/[username/password] // atau dipanggil langsung dgn fungsi user_guest_login('username','password') $username = isset($uname) ? (string) $uname : (string) func_arg(0); $password = isset($passwd) ? (string) $passwd : (string) func_arg(1); if (!isset($username) || trim($username) == '') { $username = $_POST['username']; } if (!isset($password) || trim($password) == '') { $password = $_POST['password']; } // die("$username, $password"); if (strlen(trim($username)) == 0 || strlen(trim($password)) == 0) { unset($_SESSION['session_id']); unset($_SESSION['username']); unset($_SESSION['user_id']); return "0"; } unset($_SESSION['pop_error_msg']); unset($_SESSION['pop_status_msg']); // connect to mongodb using default setting $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Users'); $lilo_mongo->selectCollection('Account'); $user_exists = $lilo_mongo->findOne(array('username' => $username, 'password' => md5($password))); // revisi 04072012: jika username tidak ditemukan, gunakan email if (!is_array($user_exists) || count($user_exists) == 0) { $user_exists = $lilo_mongo->findOne(array('email' => $username, 'password' => md5($password))); $username = $user_exists['username']; } $session_id = $_SESSION['session_id']; $session_username = $_SESSION['username']; // bagaimana jika $session_username berbeda dengan $username? $cur_date = date("Y-m-d H:i:s"); if (is_array($user_exists) && count($user_exists)) { // die("<pre>".print_r($user_exists, true)."</pre>"); if (trim($session_id) == '' || trim($session_username) == '') { $user_id = (string) $user_exists['_id'] . ''; // generate session_id $session_id = md5($cur_date . " - " . $username); $_SESSION['session_id'] = $session_id; $_SESSION['username'] = $username; $_SESSION['user_id'] = $user_id; // simpan di table session // array(session_id, username, time_start, time_end) // untuk mencegah user login di lebih dari satu browser, jika data session utk user_id sudah ada, maka lakukan hanya update // lakukan insert hanya bila data session utk user_id belum ada $lilo_mongo->selectCollection('Session'); $exist_user_id = $lilo_mongo->findOne(array('user_id' => $user_id)); if (is_array($exist_user_id) && count($exist_user_id)) { // $lilo_mongo->update_set( // array( // 'user_id' => $user_id, // ), // array( // 'session_id' => $session_id, //// 'user_id' => $user_id, //// 'username' => $username, //// 'time_start' => $cur_date, //// 'time_end' => '' // ) // ); $lilo_mongo->selectCollection('SessionLog'); $lilo_mongo->insert($exist_user_id); } // else { $lilo_mongo->selectCollection('Session'); $lilo_mongo->remove(array('user_id' => $user_id)); $lilo_mongo->insert(array('session_id' => $session_id, 'user_id' => $user_id, 'username' => $username, 'time_start' => $cur_date, 'time_end' => '', 'HTTP_USER_AGENT' => $_SERVER['HTTP_USER_AGENT'], 'REMOTE_ADDR' => $_SERVER['REMOTE_ADDR'], 'REMOTE_HOST' => $_SERVER['REMOTE_HOST'])); // } report_admin_countuseronlinetime($user_id); return $session_id; } else { // sepertinya kondisi ini tidak akan terpenuhi... :P if ($session_username == $username) { // mencoba login, padahal sudah terdaftar... // biarkan saja, sepertinya orang ini ga ada kerjaan return $session_id; } else { // sudah terdaftar, kemudian mencoba login dengan username dan password yg lain // logout dulu, baru login dengan username yg baru // update($array_criteria, $array_newobj, $array_options) $array_criteria = array('session_id' => $session_id); $array_newobj = array('$set' => array('time_end' => $cur_date)); $array_options = array('upsert' => true); $lilo_mongo->selectCollection('Session'); $lilo_mongo->update($array_criteria, $array_newobj, $array_options); $session_id = md5($cur_date . " - " . $username); $_SESSION['session_id'] = $session_id; $_SESSION['username'] = $username; // simpan di table session // array(session_id, username, time_start, time_end) $lilo_mongo->selectCollection('Session'); $lilo_mongo->insert(array('session_id' => $session_id, 'username' => $username, 'time_start' => $cur_date, 'time_end' => '', 'HTTP_USER_AGENT' => $_SERVER['HTTP_USER_AGENT'], 'REMOTE_ADDR' => $_SERVER['REMOTE_ADDR'], 'REMOTE_HOST' => $_SERVER['REMOTE_HOST'])); return $session_id; } } } else { unset($_SESSION['session_id']); unset($_SESSION['username']); unset($_SESSION['user_id']); return "0"; } }
function article_admin_addslide($no = NULL, $title = NULL, $image = NULL, $description = NULL, $link = NULL) { if (!isset($no) || !isset($title) || !isset($image) || !isset($description) || !isset($link)) { $no = $_POST['no']; $title = $_POST['title']; $image = $_POST['image']; $description = $_POST['description']; $link = $_POST['link']; } $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Articles'); $lilo_mongo->selectCollection('Slideshow'); $slide = array('no' => $no, 'title' => $title, 'image' => $image, 'description' => $description, 'link' => $link); $lilo_id = $lilo_mongo->insert($slide); $lilo_mongo->update($slide, array_merge($slide, array('lilo_id' => (string) $lilo_id)), array('multiple' => false)); return (string) $lilo_id; }
function avatar_user_set_animation($animation_conf = NULL) { if (!isset($animation_conf)) { $animation_conf = $_REQUEST['animation_conf']; } $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Users'); $lilo_mongo->selectCollection('Animation'); $insert_id = $lilo_mongo->update(array('user_id' => $_SESSION[user_id]), array('user_id' => $_SESSION[user_id], 'configuration' => $animation_conf), array('upsert' => true)); if (isset($_REQUEST['redirect_url'])) { $_SESSION['pop_status_msg'][] = "Configuration saved."; header("Location: " . $_SESSION['basepath'] . $_REQUEST['redirect_url']); exit; } if ($insert_id) { return "1"; } return 0; }