Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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;
    }
}