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);
}
  • Вопрос задан
  • 38 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Zaymigo Нижний Новгород
от 20 000 до 100 000 руб.
Devmasterz Тюмень
от 80 000 до 120 000 руб.
18 июля 2018, в 23:01
5000 руб./за проект
18 июля 2018, в 22:20
4000 руб./за проект