Ejemplo n.º 1
0
function get_contact_func($xmlrpc_params)
{
    global $db, $lang, $theme, $plugins, $mybb, $session, $settings, $cache, $time, $mybbgroups, $parser, $displaygroupfields;
    $lang->load("member");
    $input = Tapatalk_Input::filterXmlInput(array('user_id' => Tapatalk_Input::STRING), $xmlrpc_params);
    if (isset($input['user_id']) && !empty($input['user_id'])) {
        $uid = $input['user_id'];
    } else {
        $uid = $mybb->user['uid'];
    }
    if ($mybb->user['uid'] != $uid) {
        $member = get_user($uid);
    } else {
        $member = $mybb->user;
    }
    if (!$member['uid']) {
        error($lang->error_nomember);
    }
    // Guests or those without permission can't email other users
    if ($mybb->usergroup['cansendemail'] == 0 || !$mybb->user['uid']) {
        error_no_permission();
    }
    if ($member['hideemail'] != 0) {
        error($lang->error_hideemail);
    }
    $user_info = array('result' => new xmlrpcval(true, 'boolean'), 'user_id' => new xmlrpcval($member['uid']), 'display_name' => new xmlrpcval(basic_clean($member['username']), 'base64'), 'enc_email' => new xmlrpcval(base64_encode(encrypt($member['email'], loadAPIKey()))));
    $xmlrpc_user_info = new xmlrpcval($user_info, 'struct');
    return new xmlrpcresp($xmlrpc_user_info);
}
Ejemplo n.º 2
0
function get_recommended_user_func()
{
    global $mybb, $db, $lang, $users, $tapatalk_users;
    $tapatalk_users = array();
    $users = array();
    // Load global language phrases
    $lang->load("memberlist");
    //get tapatalk users
    if (isset($_POST['mode']) && $_POST['mode'] == 2) {
        $sql = "SELECT userid FROM " . TABLE_PREFIX . "tapatalk_users";
        $query = $db->query($sql);
        while ($user = $db->fetch_array($query)) {
            $tapatalk_users[] = $user['userid'];
        }
    }
    // get pm users
    $sql = "SELECT p.toid as uid\n\tFROM " . TABLE_PREFIX . "privatemessages p \n\tWHERE p.uid = " . $mybb->user['uid'] . "\n\tGROUP BY p.toid\n\tLIMIT 0,1000";
    get_recommended_user_list($sql, 'contact');
    // get pm me users
    $sql = "SELECT p.uid as uid\n\tFROM " . TABLE_PREFIX . "privatemessages p \n\tWHERE p.toid = " . $mybb->user['uid'] . "\n\tGROUP BY p.uid\n\tLIMIT 0,1000";
    get_recommended_user_list($sql, 'contact');
    //get sub topic users
    $sql = "SELECT t.uid as uid\n\tFROM " . TABLE_PREFIX . "threadsubscriptions ts \n\tLEFT JOIN " . TABLE_PREFIX . "threads t ON ts.tid = t.tid \n\tWHERE ts.uid = " . $mybb->user['uid'] . "\n\tGROUP BY t.uid\n\tLIMIT 0,1000";
    get_recommended_user_list($sql, 'watch');
    //get sub me topic users
    $sql = "SELECT ts.uid as uid\n\tFROM " . TABLE_PREFIX . "threadsubscriptions ts \n\tRIGHT JOIN " . TABLE_PREFIX . "threads t ON ts.tid = t.tid \n\tWHERE t.uid = " . $mybb->user['uid'] . "\n\tGROUP BY ts.uid\n\tLIMIT 0,1000";
    get_recommended_user_list($sql, 'watch');
    //get like or thank users
    $prefix = "g33k_thankyoulike_";
    if (file_exists('thankyoulike.php') && $db->table_exists($prefix . 'thankyoulike')) {
        $sql = "SELECT thl.puid as uid\n\t\tFROM " . TABLE_PREFIX . $prefix . "thankyoulike thl \n\t\tWHERE thl.uid = " . $mybb->user['uid'] . "\n\t\tGROUP BY thl.puid\n\t\tLIMIT 0,1000";
        get_recommended_user_list($sql, 'like');
        $sql = "SELECT thl.uid as uid\n\t\tFROM " . TABLE_PREFIX . $prefix . "thankyoulike thl \n\t\tWHERE thl.puid = " . $mybb->user['uid'] . "\n\t\tGROUP BY thl.uid\n\t\tLIMIT 0,1000";
        get_recommended_user_list($sql, 'liked');
    }
    $page = intval($_POST['page']);
    $perpage = intval($_POST['perpage']);
    $start = ($page - 1) * $perpage;
    $return_user_lists = array();
    $users_rank = tapa_rank_users($users);
    $total = count($users_rank);
    $users_slice = array_slice($users_rank, $start, $perpage);
    $user_id_str = implode(',', $users_slice);
    $mobi_api_key = loadAPIKey();
    if (!empty($user_id_str)) {
        $sql = "SELECT uid,username,email,avatar FROM " . TABLE_PREFIX . "users WHERE uid IN({$user_id_str})";
        $query = $db->query($sql);
        while ($user = $db->fetch_array($query)) {
            $user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']);
            if ($user['avatar'] != '') {
                $user['avatar'] = absolute_url($user['avatar']);
            }
            $return_user_lists[] = new xmlrpcval(array('username' => new xmlrpcval(basic_clean($user['username']), 'base64'), 'user_id' => new xmlrpcval($user['uid'], 'string'), 'icon_url' => new xmlrpcval($user['avatar'], 'string'), 'type' => new xmlrpcval('', 'string'), 'enc_email' => new xmlrpcval(base64_encode(encrypt(trim($user['email']), $mobi_api_key)), 'string')), 'struct');
        }
    }
    $suggested_users = new xmlrpcval(array('total' => new xmlrpcval($total, 'int'), 'list' => new xmlrpcval($return_user_lists, 'array')), 'struct');
    return new xmlrpcresp($suggested_users);
}
function get_recommended_user_func()
{
    global $db, $auth, $user, $config, $phpbb_home, $table_prefix, $tapatalk_users;
    $tapatalk_users = array();
    $users = array();
    //get tapatalk users
    $sql = "SELECT userid AS uid FROM " . $table_prefix . "tapatalk_users";
    $query = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($query)) {
        $tapatalk_users[] = $row['uid'];
    }
    //get pm users
    $sql = "SELECT user_id AS uid FROM " . PRIVMSGS_TO_TABLE . " WHERE author_id = '" . $user->data['user_id'] . "'";
    $query = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($query)) {
        if (isset($users[$row['uid']])) {
            $users[$row['uid']] = $users[$row['uid']] + 10;
        } else {
            $users[$row['uid']] = 10;
        }
    }
    //get pm to me users
    $sql = "SELECT author_id AS uid FROM " . PRIVMSGS_TO_TABLE . " WHERE user_id = '" . $user->data['user_id'] . "'";
    $query = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($query)) {
        if (isset($users[$row['uid']])) {
            $users[$row['uid']] = $users[$row['uid']] + 10;
        } else {
            $users[$row['uid']] = 10;
        }
    }
    //get sub users
    $sql = "SELECT tw.user_id AS uid FROM " . TOPICS_WATCH_TABLE . " AS tw \r\r\n\tLEFT JOIN " . TOPICS_TABLE . " AS t ON tw.topic_id=t.topic_id \r\r\n\tWHERE t.topic_poster = '" . $user->data['user_id'] . "'";
    $query = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($query)) {
        if (isset($users[$row['uid']])) {
            $users[$row['uid']] = $users[$row['uid']] + 5;
        } else {
            $users[$row['uid']] = 5;
        }
    }
    //get me sub users
    $sql = "SELECT t.topic_poster AS uid FROM " . TOPICS_WATCH_TABLE . " AS tw \r\r\n\tRIGHT JOIN " . TOPICS_TABLE . " AS t ON tw.topic_id=t.topic_id \r\r\n\tWHERE tw.user_id = '" . $user->data['user_id'] . "'";
    $query = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($query)) {
        if (isset($users[$row['uid']])) {
            $users[$row['uid']] = $users[$row['uid']] + 5;
        } else {
            $users[$row['uid']] = 5;
        }
    }
    arsort($users);
    foreach ($users as $key => $row) {
        //non tapatalk users
        if (isset($_POST['mode']) && $_POST['mode'] == 2 && in_array($key, $tapatalk_users)) {
            unset($users[$key]);
        }
        if ($key == $user->data['user_id']) {
            unset($users[$key]);
        }
        if ($key == 1) {
            unset($users[$key]);
        }
    }
    $page = intval($_POST['page']);
    $perpage = intval($_POST['perpage']);
    $start = ($page - 1) * $perpage;
    $total = count($users);
    $users_keys = array_keys($users);
    $users_slice = array_slice($users_keys, $start, $perpage);
    $id_str = implode(',', $users_slice);
    $return_user_lists = array();
    if (!empty($id_str)) {
        $sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_id in (" . $id_str . ")";
        $query = $db->sql_query($sql);
        while ($row = $db->sql_fetchrow($query)) {
            $return_user_lists[] = new xmlrpcval(array('username' => new xmlrpcval(basic_clean($row['username']), 'base64'), 'user_id' => new xmlrpcval($row['user_id'], 'string'), 'icon_url' => new xmlrpcval(get_user_avatar_url($row['user_avatar'], $row['user_avatar_type']), 'string'), 'type' => new xmlrpcval('', 'string'), 'enc_email' => new xmlrpcval(base64_encode(encrypt($row['user_email'], loadAPIKey())), 'string')), 'struct');
        }
    }
    $suggested_users = new xmlrpcval(array('total' => new xmlrpcval($total, 'int'), 'list' => new xmlrpcval($return_user_lists, 'array')), 'struct');
    return new xmlrpcresp($suggested_users);
}