function friend_user_cleanfriends() { // menghapus semua Social.Friends yg sudah tidak ada di table Users.Account $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Social'); $lilo_mongo->selectCollection('Friends'); $friend_cursor = $lilo_mongo->find(); while ($friend = $friend_cursor->getNext()) { // cek apakah $friend[friend_id]; ada di Users.Account $lilo_mongo->selectDB('Users'); $lilo_mongo->selectCollection('Account'); $criteria = array('lilo_id' => $friend['friend_id']); $user_data = $lilo_mongo->findOne($criteria); if (count($user_data) < 1) { // hapus dari Social.Friends $lilo_mongo->selectDB('Social'); $lilo_mongo->selectCollection('Friends'); $criteria = array('friend_id' => $friend['friend_id']); $lilo_mongo->delete($criteria); print "<pre>"; print_r($criteria); print "</pre><br />"; } } }
function unity_user_delstatus() { $status_id = func_arg(0); $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Users'); $lilo_mongo->selectCollection('UserProfile'); $cekada = $lilo_mongo->delete(array('_id' => $lilo_mongo->mongoid($status_id), 'lilo_id' => (string) $_SESSION['a_id'])); $retData = array('success' => false, 'message' => "Status gagal dihapus"); if ($cekada) { $retData = array('valid' => TRUE, 'status' => "Status berhasil dihapus"); } return json_encode($retData); }
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; }
/** jika user tutup browser tanpa login, maka time_end yg tersimpan adl time last request saat user login, cek apakah ada data di table session utk user_id dia jika ada, pindahkan dulu datanya ke table SessionLog (user_id, session_id, time_start, time_end), baru kemudian data di Session dihapus table SessionLog ini yg digunakan utk menghitung achievement 'online_time' */ function user_user_logout() { // hapus session terkait login // mengeset field time_end di table Session $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Users'); if (isset($_SESSION['session_id'])) { $session_id = $_SESSION['session_id']; $lilo_mongo->selectCollection('Session'); $array_criteria = array('session_id' => $session_id); // sementara hapus dulu data di Session // informasi tentang time_start dan time_end nantinya disimpan di table lain $session_data = $lilo_mongo->findOne($array_criteria); // $cur_date = date("Y-m-d H:i:s"); // $array_newobj = array('$set' => array('time_end' => $cur_date)); // $array_options = array('upsert' => true); // // $lilo_mongo->update($array_criteria, $array_newobj, $array_options); $array_criteria = array('user_id' => $_SESSION['user_id']); $lilo_mongo->delete($array_criteria); $lilo_mongo->selectCollection('SessionLog'); $lilo_mongo->insert($session_data); } // die("<pre>" . print_r($_SESSION, true) . "<pre>"); unset($_SESSION['session_id']); unset($_SESSION['username']); unset($_SESSION['user_id']); $redirect_to_fb_logout = 0; if (isset($_SESSION['fb_id'])) { $redirect_to_fb_logout = 1; } unset($_SESSION['fb_me']); unset($_SESSION['fb_id']); unset($_SESSION['signed_request']); $basepath = $_SESSION['basepath']; $config = array(); $config['appId'] = '353789864649141'; $config['secret'] = '9e066419bed7d9ff07f4475f26318aa8'; $config['fileUpload'] = false; // optional $facebook = new Facebook($config); $fb_logoutUrl = $facebook->getLogoutUrl(); $facebook->destroySession(); session_start(); session_unset(); session_destroy(); session_write_close(); setcookie(session_name(), '', 0, '/'); session_regenerate_id(true); // ob_start(); // session_start(); /*$_SESSION['just_logout'] = 1;*/ // die("<pre>" . print_r($_SESSION, true) . "</pre>"); if ($redirect_to_fb_logout) { // header("Location: " . $_SESSION['fb_logoutUrl']); write_log(array('log_text' => time() . ": Redirect ke logouturl: " . $fb_logoutUrl)); header("Location: " . $fb_logoutUrl); // header("Location: " . $_SESSION['fb_logoutUrl']); exit; } // header("Location: " . $_SESSION['basepath']); header("Location: " . $basepath); exit; $html = "<script>\r\n\t\tvar oauth_url = '" . $basepath . "';\r\n\t\twindow.top.location = oauth_url;\r\n\t\t\r\n\t</script>"; write_log(array('log_text' => time() . ": Redirect dgn html: " . $html)); print $html; exit; // return "1"; }
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 != '') { // next: rename icon menjadi 'deleted__' . original_name $deleted_data = $lilo_mongo->findOne(array('lilo_id' => $delete)); if ($deleted_data['icon'] != '') { unlink($deleted_data['icon']); } $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) != '') { // delete dulu yg tipe-nya sama $lilo_mongo->delete(array('tipe' => $tipe)); // upload icon $uploaddir = 'bundles/inventory/icons/'; $uploadfile = $uploaddir . time() . '__' . basename($_FILES['icon']['name']); $icon = ''; if (move_uploaded_file($_FILES['icon']['tmp_name'], $uploadfile)) { // echo "File is valid, and was successfully uploaded.\n"; $icon = $uploadfile; } else { // echo "Possible file upload attack!\n"; } $curtime = time(); $inventory_data = array('tipe' => $tipe, 'description' => $description, 'icon' => $icon, 'upload_time' => $curtime, 'last_edit_time' => $curtime); $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)); } header('Location:' . $_SESSION['basepath'] . 'asset/admin/inventory'); } // edit_inventory $edit_inventory = trim($_REQUEST['edit_inventory']); if ($edit_inventory != '') { // Array ( // [q] => asset/admin/inventory // [edit_inventory] => 4ea62afd89b38f280b000001 // [edit_tipe] => Test002 // [edit_description] => Testing Kedua // [PHPSESSID] => 0g7pjm3pc256rerjfv01ae1f24 ) extract($_REQUEST); // edit_tipe, edit_description, edit_icon if (trim($edit_tipe) != '') { // upload icon $icon = ''; if (trim($_FILES['edit_icon']['name']) != '') { $uploaddir = 'bundles/inventory/icons/'; $uploadfile = $uploaddir . time() . '__' . basename($_FILES['edit_icon']['name']); if (move_uploaded_file($_FILES['edit_icon']['tmp_name'], $uploadfile)) { $icon = $uploadfile; } else { } } $curtime = time(); if ($icon != '') { $inventory_data = array('tipe' => $edit_tipe, 'description' => $edit_description, 'icon' => $icon, 'last_edit_time' => $curtime); // hapus file icon yg lama $deleted_data = $lilo_mongo->findOne(array('lilo_id' => $edit_inventory)); if ($deleted_data['icon'] != '') { unlink($deleted_data['icon']); } } else { $inventory_data = array('tipe' => $edit_tipe, 'description' => $edit_description, 'last_edit_time' => $curtime); } $criteria = array('lilo_id' => $edit_inventory); $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Assets'); $lilo_mongo->selectCollection('Inventory'); $lilo_mongo->update_set($criteria, $inventory_data); } header('Location:' . $_SESSION['basepath'] . 'asset/admin/inventory'); } // dapatkan data Assets.Inventory $inventory_array = $lilo_mongo->find(); $inventory_array = $inventory_array->sort(array('upload_time' => -1)); // digunakan utk list inventory di quest/admin/default $return_json = $_REQUEST['return_json']; if ($return_json == "1") { $inv_array = array(); while ($curr = $inventory_array->getNext()) { $inv_array[] = $curr; } return json_encode($inv_array); } $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 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 mobile_social_delcommentnews() { $user_email = func_arg(0); $user_id = _get_id_user($user_email); $news_id = func_arg(1); $_id = func_arg(2); $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Social'); $lilo_mongo->selectCollection('NewsComments'); $data = $lilo_mongo->delete(array("user_id" => $user_id, "_id" => $lilo_mongo->mongoid($_id))); $output['count'] = $lilo_mongo->count(array("news_id" => $news_id)); return json_encode($output); }
function mobile_avatar_delcollections() { $user_id = func_arg(0); $_id = func_arg(1); $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Users'); $lilo_mongo->selectCollection('AvatarCollection'); $data = $lilo_mongo->delete(array('user_id' => $user_id, "_id" => $lilo_mongo->mongoid($_id))); $output['collectionsCount'] = $lilo_mongo->count(array("user_id" => $user_id)); return json_encode($output); }
/** jika user tutup browser tanpa login, maka time_end yg tersimpan adl time last request saat user login, cek apakah ada data di table session utk user_id dia jika ada, pindahkan dulu datanya ke table SessionLog (user_id, session_id, time_start, time_end), baru kemudian data di Session dihapus table SessionLog ini yg digunakan utk menghitung achievement 'online_time' */ function user_user_logout() { // hapus session terkait login // mengeset field time_end di table Session $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Users'); if (isset($_SESSION['session_id'])) { $session_id = $_SESSION['session_id']; $lilo_mongo->selectCollection('Session'); $array_criteria = array('session_id' => $session_id); // sementara hapus dulu data di Session // informasi tentang time_start dan time_end nantinya disimpan di table lain $session_data = $lilo_mongo->findOne($array_criteria); // $cur_date = date("Y-m-d H:i:s"); // $array_newobj = array('$set' => array('time_end' => $cur_date)); // $array_options = array('upsert' => true); // // $lilo_mongo->update($array_criteria, $array_newobj, $array_options); $array_criteria = array('user_id' => $_SESSION['user_id']); $lilo_mongo->delete($array_criteria); $lilo_mongo->selectCollection('SessionLog'); $lilo_mongo->insert($session_data); } unset($_SESSION['session_id']); unset($_SESSION['username']); unset($_SESSION['user_id']); $redirect_to_fb_logout = 0; if (isset($_SESSION['fb_id'])) { $redirect_to_fb_logout = 1; } unset($_SESSION['fb_me']); unset($_SESSION['fb_id']); unset($_SESSION['signed_request']); if ($redirect_to_fb_logout) { header("Location: " . $_SESSION['fb_logoutUrl']); exit; } header("Location: " . $_SESSION['basepath']); exit; // return "1"; }