function friend_user_ws_friendlist($keyword = NULL) { if (!isset($keyword)) { $keyword = func_arg(0); } // dapatkan circle array // ... $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Social'); $lilo_mongo->selectCollection('Circles'); $circle_data_ = $lilo_mongo->findOne(array('user_id' => $_SESSION['user_id'])); $circle_data = $circle_data_['circle_array']; // dapatkan semua data di table Friends dengan user_id = $_SESSION['user_id'] $lilo_mongo->selectDB('Social'); $lilo_mongo->selectCollection('Friends'); $friend_cursor = $lilo_mongo->find(array('user_id' => $_SESSION['user_id'])); $friend_data = array(); while ($friend = $friend_cursor->getNext()) { unset($friend['_id']); // tambahkan detail $friend dari table Users.Account dan Users.Properties // dari $friend['user_id'] $friend_account_detail = friend_user_detailbyuserid($friend['friend_id']); $friend_account_detail = json_decode($friend_account_detail); $friend = array_merge((array) $friend, (array) $friend_account_detail); $friend_data[] = $friend; } $outer_circle_friend_data = $friend_data; for ($idx = 0; $idx < count($circle_data); $idx++) { $friend_list = array(); foreach ($friend_data as $friend) { $circle_array = $friend['circle_array']; if (in_array($circle_data[$idx], $circle_array)) { // // tambahkan detail $friend dari table Users.Account dan Users.Properties // // dari $friend['user_id'] // // $friend_account_detail = friend_user_detailbyuserid($friend['friend_id']); // $friend_account_detail = json_decode($friend_account_detail); // $friend = array_merge((array)$friend, (array)$friend_account_detail); $friend_list[] = $friend; } } $circle_data[$idx] = array_merge((array) $circle_data[$idx], (array) $friend_list); } // dapatkan semua friend yg tdk masuk circle manapun... // $outer_circle_friend_data = array_diff($outer_circle_friend_data, $friend_list); for ($idx = 0; $idx < count($outer_circle_friend_data); $idx++) { if (count($outer_circle_friend_data[$idx]['circle_array'])) { unset($outer_circle_friend_data[$idx]); } } // write_log(array('filename' => NULL, 'somecontent' => print_r($outer_circle_friend_data, true) . "\n\n" . print_r($friend_list, true))); $circle_data[] = array_merge(array('Outer Circle'), (array) $outer_circle_friend_data); unset($friend_list); unset($friend_data); unset($circle_data_); $lilo_mongo->close(); // dapatkan property setiap friend ! // return print_r($circle_data, true); // return print_r($circle_data, true) . '-------------' . print_r($friend_data, true); return json_encode($circle_data); }
function friend_user_getchat() { // CHAT_ : start_time, time, text // extract($_REQUEST); // friend_id, text $friend_id = isset($friend_id) ? $friend_id : func_arg(0); if (!isset($friend_id)) { return ''; } $curr_time = time(); $user_id = $_SESSION['user_id']; if ($user_id < $friend_id) { $table_name = 'CHAT_' . $user_id . '_' . $friend_id; } else { $table_name = 'CHAT_' . $friend_id . '_' . $user_id; } // dapetin nama lengkap dari user_id dan friend_id $user_detail = friend_user_detailbyuserid($user_id); $user_detail = json_decode($user_detail); $friend_detail = friend_user_detailbyuserid($friend_id); $friend_detail = json_decode($friend_detail); $arr_fullname[$user_id] = $user_detail->fullname; $arr_fullname[$friend_id] = $friend_detail->fullname; $lilo_mongo = new LiloMongo(); $lilo_mongo->selectDB('Social'); $lilo_mongo->selectCollection($table_name); $limit = 50; // dapatkan last 50 conversation // find($array_parameter = array(), $limit = 0, $sort = array()) $count = $lilo_mongo->count(); if ($count >= $limit) { $conversation = $lilo_mongo->find(array(), $limit, array('time' => -1)); $retval = ''; $retval_array = array(); $idx = $limit - 1; while ($conv = $conversation->getNext()) { $speaker = $conv['speaker']; $text = $conv['text']; $speaker_fullname = $arr_fullname[$speaker]; $retval_array[$idx] = "<br><strong>{$speaker_fullname}</strong><br>" . $text; $idx--; } for ($i = 0; $i < count($retval_array); $i++) { if (isset($retval_array[$i]) && trim($retval_array[$i]) != '') { $retval .= $retval_array[$i]; } } return $retval; } else { $conversation = $lilo_mongo->find(array(), $limit, array('time' => 1)); $retval = ''; $retval_array = array(); while ($conv = $conversation->getNext()) { $speaker = $conv['speaker']; $text = $conv['text']; $speaker_fullname = $arr_fullname[$speaker]; $retval .= "<br><strong>{$speaker_fullname}</strong><br>" . $text; } return $retval; } }