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); }
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); }