cashloveyou
@cashloveyou
Хороший чел

Показывать пользователей если есть общие друзья?

Сейчас рандомно показываются пользователи с предложением их добавить сам блок называется * возможно вы знакомы* отображаются они рандомно , как сделать чтобы выводились только те с кем есть общие друзья

На сайте есть только подсчет общих друзей но сами пользователи не отображаются
function get_mutual_friends($userid) {
    $loggedInFriends = get_friends();
    $thisUserFriends = get_friends($userid);
    $mutual = array();
    if (is_array($thisUserFriends)) {
        foreach($thisUserFriends as $f) {
            if (in_array($f, $loggedInFriends) and $f != get_userid()) $mutual[] = $f;
        }
    }
    return $mutual;
}


Сам вывод пользователей

function relationship_suggest($limit, $refId = null, $only_people = false) {
    $ignoredUsers = mostIgnoredUsers();
    $refId = ($refId) ? $refId : get_userid();

    $whereClause = "";

    $ignoredUsers = array_merge($ignoredUsers, get_friends($refId));
    $ignoredUsers = array_merge($ignoredUsers, get_requested_friends($refId));
    $friendsFriends = get_friends_of_friend($refId);
    if ($friendsFriends) {
        $friendsFriends = implode(',', $friendsFriends);
        $whereClause .= "id IN({$friendsFriends}) ";
    }

    //$followersFollowing = get_following_following($refId);
    $ignoredUsers = array_merge($ignoredUsers, get_following($refId));

    $userCountry = get_user_data('country');
    $userCity = get_user_data('city');
    $userState = get_user_data('state');
    $whereClause .= ($whereClause) ? " OR `country`='{$userCountry}' OR `city`='{$userCity}' OR `state`='{$userState}' OR avatar !=''": "`country`='{$userCountry}' OR `city`='{$userCity}' OR `state`='{$userState}' OR avatar !=''";
    $whereClause = fire_hook('users.suggestion.sql', $whereClause);
    $after_whereClause = "";
    $after_whereClause = fire_hook('users.category.filter',$after_whereClause,array($after_whereClause, true));
    $ignoredUsers = implode(',', array_merge(array($refId), $ignoredUsers));
    $fields = get_users_fields();

    $query = "SELECT {$fields} FROM `users` WHERE `id`NOT IN({$refId}) AND ({$whereClause}) AND id NOT IN ({$ignoredUsers}) AND activated=1 {$after_whereClause} ORDER BY rand()";
    $query = fire_hook("state.city.suggestions",$query,array($fields,$refId,$whereClause,$ignoredUsers));
    if($only_people){
        $query = fire_hook('get.suggest.non.doctors',$query,array($fields,$refId,$whereClause,$ignoredUsers));
    }
    //exit($query);
    return paginate($query, $limit);
}
  • Вопрос задан
  • 35 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы