/** * Alerts your friend if you accept their friend request * * @Param: the id of your friend * @Param: your user id * * @author: Tom Willmot [1.1 - Joe Hoyle 8/12/2008] * @version 1.1 **/ function nm_alert_friend_request_accepted($fid, $uid) { $friendInfo = get_userdata($fid); $userInfo = get_userdata($uid); //Alert the requester $useralert = array(); $useralert['content'] = '<a href="' . getProfileLink($friendInfo->ID) . '" title="View ' . nm_user_public_name($friendInfo) . 's profile">' . nm_user_public_name($friendInfo) . '</a> has accepted your friend request, You are now friends.'; $useralert['type'] = 'friend'; nm_add_alert($uid, $useralert, 'true'); //Alert the user's friends $friendList = new userFriends(); $friends = $friendList->get_friends($friendInfo->ID); if ($friends) { $friends = nm_array_invert($friends); foreach ($friends as $key => $friend) { if ($friend == $userInfo->ID || $friend == $friendInfo->ID) { unset($friends[$key]); } } $friendalert = array(); $friendalert['content'] = '<a href="' . getProfileLink($friendInfo->ID) . '" title="View ' . nm_user_public_name($friendInfo) . 's profile">' . nm_user_public_name($friendInfo) . '</a> and <a href="' . getProfileLink($userInfo->ID) . '" title="View ' . nm_user_public_name($userInfo->ID) . 's profile">' . nm_user_public_name($userInfo->ID) . '</a> have become friends.'; $friendalert['type'] = 'friend'; nm_add_alert($friends, $friendalert); } //Alert the freinds' friends $ffriendList = new userFriends(); $ffriends = $ffriendList->get_friends($userInfo->ID); if ($ffriends) { $ffriends = nm_array_invert($ffriends); foreach ($ffriends as $key => $friend) { if ($friend == $userInfo->ID || $friend == $friendInfo->ID) { unset($ffriends[$key]); } } $ffriendalert = array(); $ffriendalert['content'] = '<a href="' . getProfileLink($friendInfo->ID) . '" title="View ' . nm_user_public_name($friendInfo) . 's profile">' . nm_user_public_name($friendInfo) . '</a> and <a href="' . getProfileLink($userInfo->ID) . '" title="View ' . nm_user_public_name($userInfo->ID) . 's profile">' . nm_user_public_name($userInfo->ID) . '</a> have become friends.'; $ffriendalert['type'] = 'friend'; nm_add_alert($ffriends, $friendalert); } }
function nm_members_you_should_meet($uid = 'current', $limit = '999', $matches = true, $fields = 'hometown,interests') { global $wpdb; if ($uid == 'current') { $uid = wp_get_current_user(); $uid = $uid->ID; } $fields = explode(',', $fields); //Get all the user except the current one and users friends $friendList = new userFriends(); $friends = nm_array_invert($friendList->get_friends($uid)); $friends_sql = ''; if (!empty($friends)) { foreach ($friends as $friend) { $sep = ' AND '; $friends_sql .= $sep . "ID != '" . $friend . "'"; } } $query = "SELECT ID FROM {$wpdb->users} WHERE ID != '{$uid}'" . $friends_sql; $users = $wpdb->get_col($query); $results = array(); //Loop through the users' profile info foreach ($fields as $field) { $field = trim($field); $userField = nm_profile_info($field, $uid); //Only check if the user has filled in thair profile info if ($userField != '' || !empty($userField)) { foreach ($users as $user) { $otherField = nm_profile_info($field, $user); if ($userField == $otherField && !is_array($userField)) { $results[] = $user; } elseif (is_array($userField) && is_array($otherField)) { foreach ($userField as $singleField) { foreach ($otherField as $otherSingle) { if ($otherSingle == $singleField) { $results[] = $user; } } } } } } } //Sort the array by most matches $numResults = array_count_values($results); $finalResults = array(); //Compile the final array of IDs foreach ($numResults as $key => $result) { $finalResults[] = $key; } $finalResults = array_slice($finalResults, 0, $limit); //Add random users until there are 4 matches $needed = $limit - count($finalResults); while ($needed > 0) { $randomUser = $users[array_rand($users)]; if (!in_array($randomUser, $finalResults) && $randomUser != 0) { $finalResults[] = $randomUser; $needed--; } } //Return the array of IDs return $finalResults; }