Uzyskaj liczbę obserwujących i obserwujących w relacjach z użytkownikami


8

Utworzyłem obserwujących relacje, które można odwzajemniać za pomocą modułu relacji użytkownika. Teraz relacja użytkownika A wygląda następująco: Obserwujący (Oni dla Ciebie): Użytkownik B, Użytkownik C, Użytkownik D Obserwujący (Ty dla nich): Użytkownik D

Teraz chcę utworzyć widok, który pokazuje tylko liczbę obserwujących i następujące: Obserwujący: 3
Obserwowany: 1

Zacząłem tworzyć widok (Widoki 3, Drupal7), ale nie byłem w stanie tego zrobić. Nie otrzymałem żadnych filtrów ani relacji dotyczących tego. Próbowałem też użyć Calla Views, ale nie jestem pewien. Byłbym wdzięczny za każdą pomoc.

Dzięki

Edytować:

Przepraszamy za brak jasności.

Utworzyłem widok typu Użytkownicy. Następnie dodałem relację (w tej części nie jestem pewien, czy mam rację, czy nie). Próbowałem ze wszystkimi dostępnymi relacjami związanymi z tym, takimi jak relacje użytkownika:

 User relationships: Requestee user
 User relationships: Requestee user is current user 
 User relationships: Requester user
 User relationships: Requester user is current user
 User relationships: RTID

(próbowałem indywidualnie każdego z nich i ich różnych kombinacji)

Następnie w obszarze Inne kliknąłem opcję Tak, aby użyć opcji Agregaty, a kiedy zapytano mnie o funkcję grupowania („Typ grupy”), wybrałem opcję „Policz i odznacz etykietę na ekranie pola konfiguracji, aby wyświetlała tylko liczbę.

Dodałem również filtr, że użytkownik jest zalogowany. Jednak pokazuje mi tylko liczbę relacji różnych użytkowników, którzy zażądali bieżącego.

Edycja 2:

Znaleziono ten wątek: http://drupal.org/node/809476 . Jednak w przypadku Drupala 6 ... próbuję wdrożyć go w wersji 7. zobaczmy ... jeśli masz jakieś wskazówki, byłbym wdzięczny ... będę cię informować

Edycja 3:

Na podstawie powyższego wątku napisałem następujący kod w niestandardowym bloku.

<?php
global $user;
$user_id = $user->uid;
$params = array("requestee_id" => $user_id, 'rtid' => 3);
$count = user_relationships_load($params, array("count" => TRUE));
echo $user_id;
echo $count;
?>

Właśnie wydrukowałem identyfikator użytkownika, aby sprawdzić, czy jest poprawny, czy nie, i drukuje poprawnego użytkownika. Jednak policz odbitki 0. Dlaczego tak jest?

Edycja 4:

Myślę, że jestem na dobrej drodze, używając http://drupal.org/node/203396 . Istnieją jednak pewne poprawki. Prawidłowy kod to:

<?php
global $user;
$requests = user_relationships_load($param = array("approved" => 1, "user" => $user->uid), $options = array(), $reset = FALSE);
$requestcount = count($requests);
echo  $requestcount;
?>

Wyświetla całkowitą liczbę zatwierdzonych relacji. Teraz chcę tylko numer relacji typu obserwujących. Patrząc na to. Jeśli ktoś ma jakieś sugestie, doceni je. Będzie was wszystkich na bieżąco

Edycja5:

A teraz utknąłem. Cokolwiek próbuję zrobić, otrzymuję tylko całkowitą liczbę relacji. Chcę tylko liczbę obserwujących (ich do ciebie) w jednym bloku, a następnie korzystając z tego, mam nadzieję, będę w stanie uzyskać liczbę obserwujących (ciebie do nich). Byłbym wdzięczny za każdą pomoc.

Dzięki


1
Czego próbowałeś? Jak w konkretnie co próbowałeś? Co nie działało? Czym różni się to, czego się spodziewałeś? Państwo musi pokazać, że próbowali rozwiązać problemy samemu, ta strona nie jest dla żądających tutoriali
— Clive

może mogę użyć, function user_relationships_type_load($param = array(), $reset = NULL) ale potrzebuję wskazówek lub pomocy
— dlaczego

Parametry parametru user_relationships_load obejmują również parametr między parametrami. „tablica („ między ”=> tablica ($ uid1, $ uid2)) zwróci wszystkie relacje między dwoma identyfikatorami użytkowników”
— Mark Ferree

@kewal, czy byłeś w stanie rozwiązać problem? Potrzebuję tej funkcji w moim projekcie. Dzięki.
— seyi

@seyi zrobiłem to używając wbudowanych dostępnych bloków i wyświetlając je za pomocą paneli ... możesz także użyć user_relationships_type_load ($ param = array (), $ reset = NULL) .... przepraszam, nie pamiętam dokładnych szczegółów ale wrócę do ciebie za jakiś czas, jeśli go znajdę ... pozdrawiam
— dlaczego

Odpowiedzi:


1

Poniższa funkcja działa dla mnie, aby wyświetlić liczbę znajomych użytkownika:

function mymodule_user_friends_count ($user) {
  $count = user_relationships_load(
    array("user" => $user->uid, 'approved' => 1, "name"=>'Friend'), 
    array('count' => TRUE));
  return $count;
}

Uwaga Liczę tylko zatwierdzonych znajomych i tylko relacje typu „Przyjaciel”

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.