Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

user relationships in Verbindung mit Views - Erstellen der buddylist

Eingetragen von monk77 (37)
am 29.07.2009 - 14:40 Uhr in
  • Views

Problem gelöst. Ich stiess im englischsprachigen drupal-Forum auf die Lösung meines Problems.

Hier der Link zum Thema:
Views in Verbindung mit user relationships

View-Ansicht 1:
klick

View-Ansicht 2:
klick

Wie ich gestern bereits in einem anderen Thema (http://www.drupalcenter.de/node/20376) erwähnt habe, beschäftige ich mich zur Zeit mit user relationships in Verbindung mit Views. Zu allererst wollte ich nur eine Übersicht erstellen, die alle Beiträge meiner Freunde anzeigt. Dies ist mir mit freundlicher Unterstützung letztendlich gelungen. Das funktioniert also alles so wie es sein sollte.

Nun möchte ich in jedem Userprofil eine eigene buddylist als block in der linken Spalte anzeigen lassen. Das user relationships-Modul bringt zwar per default einen block mit. Dieser lässt sich aber nicht so wirklich anpassen und ich halte es nicht gerade für sonderlich attraktiv, sich nur die Namen der buddies in einer einfachen Auflistung anzeigen zu lassen.

Ich habe mir deshalb eine eigene View erstellt, die ich als block links eingebunden habe. Mein Modul zeigt nun die Avatare der buddies eines bestimmten Users an, wenn man auf dessen Profil klickt. Jetzt kommt aber der Haken: Sobald ich selbst als angemeldeter User auf mein Profil klicke erscheinen alle meine buddies doppelt. Dies ist auch eigentlich logisch, weil ich in den Argumenten (Benutzer-ID aus URL) angegeben habe. Ich vermute daher, das System grabbt sich diese URL nun doppelt. Dieses Problem taucht auch wirklich nur auf, wenn man auf sein eigenes Profil klickt. Alle anderen Profile sind nicht davon betroffen.

Wie lässt sich dieses Problem lösen?

Hier meine Einstellungen in View:

Zitat:

Beziehungen:

User relationships: Requester user
User relationships: Requestee user
User relationships: RTID

Argumente:

User relationships: Requester user

Felder:

Benutzer: Benutzerbild
output this field as link: user/%1

Sortierkriterium:

Benutzer: Name aufsteigend
Standardargument zur Verfügung stellen: BenutzerID aus URL

Filter:

(requester) User relationships: Relationship status = 1
Einstellunge: Beziehungen: requester ist gleich "approved"

‹ Galerie mit Views und CCK [gelöst]imagefield im eigenen theme funktioniert nciht ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

nach einigen tests ...

Eingetragen von monk77 (37)
am 29.07.2009 - 16:52 Uhr

habe ich nun festgestellt, dass jeder User doppelt in allen buddylisten erscheint. Kann es damit zusammenhängen, dass zwischen den Usern eine beidseitige Freundschaft besteht? Es ist also so, dass die Buddylisten prinzipiell korrekt den einzelnen Usern zugeordnet werden. Nur erscheint, wie bereits erwähnt, jeder buddy zweimal in der Liste.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ähnliches Problem...

Eingetragen von mccoy (63)
am 05.08.2009 - 07:07 Uhr

Hallo,

ich habe auch ein Problem damit. Ich bin den o.g. Anleitungen gefolgt, allerdings verwende ich den Typ "Node" für meinen View. Ich verwende dieses Typ, da ich meine Userprofile per Node (Content Template) erstelle und Userfelder per CCK dazugefügt habe. (Also nicht mit dem standard Core Profile). Somit benötige ich den Typ Node um auch im View die Felder von meinem Nutzerprofil abfragen zu können.

Ich möchte nun eine Liste "meine Kontakte" mit einem View erstellen.

Probleme:
Bei den Feldern vom Typ "Inhalt" kann man aber keine "Beziehung" im View hinterlegen? Oder wie macht man das bei solchen Feldern?

Wenn ich die im o.g. Screenshot verwendeten Einstellungen in meinem View übernehme, bekomme ich die Kontakte immer drei mal angezeigt. (?)

Jemand eine Idee wo der Fehler ist?

Hier mein View:

$view = new view;
$view->name = 'aw_mycontacts';
$view->description = 'Shows the contacts of a given user';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'node';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Standards', 'default');
$handler->override_option('relationships', array(
  'requestee_id' => array(
    'id' => 'requestee_id',
    'table' => 'user_relationships',
    'field' => 'requestee_id',
  ),
  'requester_id' => array(
    'id' => 'requester_id',
    'table' => 'user_relationships',
    'field' => 'requester_id',
  ),
  'rtid' => array(
    'id' => 'rtid',
    'table' => 'user_relationships',
    'field' => 'rtid',
  ),
));
$handler->override_option('fields', array(
  'name' => array(
    'label' => 'Name',
    'alter' => array(
      'alter_text' => 0,
      'text' => '',
      'make_link' => 0,
      'path' => '',
      'link_class' => '',
      'alt' => '',
      'prefix' => '',
      'suffix' => '',
      'help' => '',
      'trim' => 0,
      'max_length' => '',
      'word_boundary' => 1,
      'ellipsis' => 1,
      'strip_tags' => 0,
      'html' => 0,
    ),
    'link_to_user' => 1,
    'overwrite_anonymous' => 0,
    'anonymous_text' => '',
    'exclude' => 0,
    'id' => 'name',
    'table' => 'users',
    'field' => 'name',
    'override' => array(
      'button' => 'Übersteuern',
    ),
    'relationship' => 'requestee_id',
  ),
));
$handler->override_option('sorts', array(
  'rtid' => array(
    'order' => 'ASC',
    'id' => 'rtid',
    'table' => 'user_relationship_types',
    'field' => 'rtid',
    'relationship' => 'rtid',
    'override' => array(
      'button' => 'Übersteuern',
    ),
  ),
));
$handler->override_option('arguments', array(
  'requester_id' => array(
    'default_action' => 'default',
    'style_plugin' => 'default_summary',
    'style_options' => array(),
    'wildcard' => 'all',
    'wildcard_substitution' => 'Alle',
    'title' => '',
    'breadcrumb' => '',
    'default_argument_type' => 'user',
    'default_argument' => '',
    'validate_type' => 'numeric',
    'validate_fail' => 'not found',
    'break_phrase' => 0,
    'not' => 0,
    'id' => 'requester_id',
    'table' => 'user_relationships',
    'field' => 'requester_id',
    'validate_user_argument_type' => 'uid',
    'validate_user_roles' => array(
      '2' => 0,
      '4' => 0,
      '3' => 0,
    ),
    'me_redirect' => 0,
    'me_validate_user_argument_type' => 'uid',
    'me_validate_user_roles' => array(
      '2' => 0,
      '4' => 0,
      '3' => 0,
    ),
    'override' => array(
      'button' => 'Übersteuern',
    ),
    'relationship' => 'none',
    'default_options_div_prefix' => '',
    'default_argument_user' => 0,
    'default_argument_fixed' => '',
    'default_argument_php' => '',
    'validate_argument_node_type' => array(
      'blog' => 0,
      'poll' => 0,
      'forum' => 0,
      'panel' => 0,
      'book' => 0,
      'group' => 0,
      'group_note' => 0,
      'page' => 0,
      'profile' => 0,
      'story' => 0,
    ),
    'validate_argument_node_access' => 0,
    'validate_argument_nid_type' => 'nid',
    'validate_argument_vocabulary' => array(
      '1' => 0,
      '2' => 0,
    ),
    'validate_argument_type' => 'tid',
    'validate_argument_transform' => 0,
    'validate_user_restrict_roles' => 0,
    'validate_argument_is_member' => 0,
    'validate_argument_php' => '',
    'me_validate_user_restrict_roles' => 0,
  ),
));
$handler->override_option('filters', array(
  'approved' => array(
    'operator' => '=',
    'value' => '1',
    'group' => '0',
    'exposed' => FALSE,
    'expose' => array(
      'operator' => FALSE,
      'label' => '',
    ),
    'id' => 'approved',
    'table' => 'user_relationships',
    'field' => 'approved',
    'override' => array(
      'button' => 'Übersteuern',
    ),
    'relationship' => 'none',
  ),
));
$handler->override_option('access', array(
  'type' => 'none',
));
$handler->override_option('cache', array(
  'type' => 'none',
));
$handler->override_option('title', 'My Contact View');
$handler->override_option('use_pager', 'mini');
$handler->override_option('style_plugin', 'grid');
$handler->override_option('style_options', array(
  'grouping' => '',
  'columns' => '4',
  'alignment' => 'horizontal',
));
$handler = $view->new_display('page', 'Seite', 'page_1');
$handler->override_option('path', 'contacts/%/mycontacts');
$handler->override_option('menu', array(
  'type' => 'none',
  'title' => '',
  'description' => '',
  'weight' => 0,
  'name' => 'navigation',
));
$handler->override_option('tab_options', array(
  'type' => 'none',
  'title' => '',
  'description' => '',
  'weight' => 0,
));

p.s. View, CCK etc. -> aktuellster Versionsstand.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Versuche mal das

Eingetragen von monk77 (37)
am 05.08.2009 - 08:11 Uhr

Versuche mal das hier:

Zitat:

Argumente:
(requester): BenutzerUID:
Standardargument zu Verfügung stellen / Benutzer-ID aus der URL

Filter:
userrelationships: Relationtype=freund (in meinem Fall steht hier Freund, weil die Beziehung bei mir als freund angelegt wurde / das muss natürlich von Fall zu Fall geändert werden)

Ich habe die Erfahrung gemacht, dass man mit dem View-Type "Nodes" nicht zum gewünschten Erfolg in Bezug auf die Buddyliste kommt. Ich habe das an besagtem Tag (siehe oben mein Posting) stundenlang versucht. Irgendwann dann wurde ich auf die Anleitung auf drupal.org aufmerksam. Erst als ich wie dort beschrieben, userrelationship als Type nutzte, kam ich zum gewünschten Erfolg.

Grüße
monk77

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, das funktioniert

Eingetragen von mccoy (63)
am 05.08.2009 - 11:23 Uhr

Hallo,

das funktioniert leider auch nicht.

Das liegt wohl daran, dass die "Base-Table" bei dem View vom Typ "user-releationship" eine andere ist und daher die SQL Query nicht funktioniert.

Nun bin ich also in einer Zwickmühle: Verwende ich den View-Typ "user-realtionship" kann ich nicht auf meine "Inhalts" Felder des Nutzerprofils zugreifen. Verwende ich den Typ "Node" kann ich die Abfrage nicht bauen...

Hat vielleicht noch jemand eine Idee?

  • Anmelden oder Registrieren um Kommentare zu schreiben

So ich habe die Lösung!

Eingetragen von mccoy (63)
am 07.08.2009 - 13:29 Uhr

Damit man in einem View vom Typ "User Realtionship" auch Zugriff auf die Nodes hat, muss unter "Beziehungen" "(requestee) Node: Content Profile" hinzufügen. Eigentlich genau wie hier beschrieben:
View Einstellungen Screenshot

Viele Grüße

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 6 Tagen
  • Hey danke
    vor 3 Wochen 1 Stunde
  • Update: jetzt gibt's ein
    vor 3 Wochen 19 Stunden
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 4 Wochen 2 Tagen
  • In der entsprechenden View
    vor 4 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 4 Wochen 2 Tagen
  • gelöst
    vor 6 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 7 Wochen 1 Stunde

Statistik

Beiträge im Forum: 250233
Registrierte User: 20460

Neue User:

  • Znogsnernoimb
  • ByteScrapers
  • Mroppoofpaync

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 28 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association