Beziehungen zwischen Inhalten - Das Modul Node Relationships

Verfasst von Hagen Graf am 16. August 2009 - 15:20

Ich habe oft damit zu tun die Beziehungen zwischen Inhalten (Beitragsbeziehungen) zu visualisieren. Manchmal benutze ich Blöcke als Views mit Parametern, manchmal binde ich Views in Node Templates ein und so weiter. Ein anderes Problem ist oft die Art der Beziehung. Manchmal gibt es Beziehungen hin- und zurück (zwei Beitragsbeziehungen), manchmal nicht (eine Beitragsbeziehung). Aber ich will Sie mit diesen Dingen nicht langweilen ...

Ich habe ein tolles Modul gefunden, das mir hilft meinen Job zu erledigen und deswegen schreibe ich diesen Artikel: noderelationships.

Die Aufgabe: Wer macht was mit wem?

Wir haben drei Gruppen: Personen, Partner and Projekte

Wir wollen eine Website mit ein paar Beziehungen

Eine Person:

  • ist eingebunden in ein oder mehrere Projekte
  • arbeitet für einen oder mehrere Partner

Ein Partner (normalerweise eine Firma oder ein NGO):

  • ist eingebunden in ein oder mehrere Projekte

A Projekt

  • hat einen Partner als Lead Partner
  • hat eine Person als Projektleiter

Wir brauchen Listen von:

  • Personen
  • Projekten
  • Partner

Wir brauchen Seitenansichten für

jede Person

  • Name
  • eingebunden in Projekt a,b, c
  • arbeitet für Partner d,e,f
  • ist Projektleiter in Projekt a, b, c

jeder Partner

  • Name
  • beschäftigt Person a, b, c
  • ist eingebunden in Projekt a, b, c
  • ist Lead Partner von Projekt a, b, c

jedes Projekt

  • Name
  • Lead Partner
  • Projektleiter
  • Partner
  • Personen

Hier ist eine Idee für eine Lösung mit dem Modul noderelationships

Ausser dem noderelationships Modul braucht man eine Drupal Installation und die cck, views, modalframe, jquery_ui Module. Ich benutze auch das admin_menu Modul.

Inhaltstypen

Wir erstellen einen Inhaltstyp für jede Gruppe (person, project and partner).

Anmerkung: Die Screenshots stammen aus dem englischen Artikel und sind nicht lokalisiert.

Node Beziehungsfelder

Wir müssen für jeden Inhaltstyp Beziehungsfelder anlegen

  • Partner

    field_project

    (unbegrenzte Werte)

  • Person

    field_project

    (unbegrenzte Werte)

    Das Feld existiert bereits, also können wir es wiederverwenden

    field_partner

    (unbegrenzte Werte)

  • Project

    field_projectcoordinator
    field_leadpartner

    (ein Wert)

Beitragsverbindungen (Node relationship)

Jetzt können wir das Node Relationships Modul benutzen.
Im Änderungsformular der Inhaltstypen gibt es ein zusätzliches Tab Beziehungen (Relationships).

Der erste Eindruck ist dieses wunderbare Entity Relations Diagramm. Es wird automatisch vom Node Relationsships Modul erzeugt und zeigt alle Beziehungen (von und nach) des Inhaltstyps partner.

Hinter dem zweiten Tab (Node reference extras) findet man die Beziehungsfelder (reference to fields). Sie können das Verhalten dieser Felder im Änderungsformular des partner Inhalts (Nodes) hier einstellen. Um komfortabel Beziehungsinhalte zu suchen, können Sie hier auch einen View angeben. Sie können eigene Views erstellen, indem sie den vordefinierten noderelationships_noderef View (Ansicht) klonen (duplizieren). Der geklonte View erscheint dann in der Optionsliste. In unserem Fall benutze ich den standard table style view. Wenn Sie die Checkbox Create and reference ankreuzen ist es möglich innerhalb des partner Änderungsformulars einen neuen project Inhalt zu erstellen und eine Beziehung herzustellen.

Das hört sich alles ein wenig theoretisch an, daher mal ein Bild vom Partner Änderungsformular mit dem project Beziehungsfeld. Die Benutzer können Beziehungeninhalte über den üblichen Weg per autocompletion finden und zuweisen. Die coolen icons auf der rechten Seite des Feldes sind ein Teil des node relationsships Moduls.

Nach einem Klick auf diese Icons öffnet sich ein Popup Fenster. Abhängig vom Icon ist es eine Auswahlliste (die man in den Einstellungen austauschen kann) mit einem Suchfilter oder ein Hinzufügen Formular (add form) fü ein neues Projekt.

Mit diesen Tools ist es wirklich einfach Beziehungen zu setzen.

Das dritte und letzte Tab enthält die Back reference settings. Hier können Sie einstellen, wie Beziehungen von anderen Inhaltstypen in diesem Inhaltstyp angezeigt werden. In unserem Fall gibt es Verbindungen aus dem Person und dem Project Inhaltstyp.

Im nächsten Screenshot sieht man die Verweise (backreferences) aus dem Inhaltstyp Person.

Das war's :-)

Ergebnis

Mit dem Node Relationships Modul ist es sehr einfach Beziehungen zwischen Inhalten zu organisieren. Spielen Sie einfach ein wenig damit herum um zu sehen, wie einfach es ist!

Die Ergebnisse können Sie auch auf eu.cocoate.com ansehen.

Ich habe oft damit zu tun die Beziehungen zwischen Inhalten (Beitragsbeziehungen) zu visualisieren. Manchmal benutze ich Blöcke als Views mit Parametern, manchmal binde ich Views in Node Templates ein und so weiter. Ein anderes Problem ist oft die Art der Beziehung. Manchmal gibt es Beziehungen hin- und zurück (zwei Beitragsbeziehungen), manchmal nicht (eine Beitragsbeziehung). Aber ich will Sie mit diesen Dingen nicht langweilen ...Ich habe ein tolles Modul gefunden, das mir hilft meinen Job zu erledigen und deswegen schreibe ich diesen Artikel: noderelationships.Die Aufgabe: Wer macht was mit wem?Wir haben drei Gruppen: Personen, Partner and ProjekteWir wollen eine Website mit ein paar Beziehungen

2 Kommentare

Tabs

Submitted by Daniel (nicht überprüft) on 26. August 2009 - 21:19.
kann man die Referenzen auch in Tabs (Karten) darstellen? Referenced from wird ja schon so dargestellt, allerdings scheinen die tabs und jene von field tabs unterschiedlich zu sein.

Referenced from wird ja schon

Submitted by Guest (nicht überprüft) on 11. February 2010 - 14:18.
Referenced from wird ja schon so dargestellt, allerdings scheinen die tabs und jene von field tabs unterschiedlich zu sein.

Kommentar hinzufügen

  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <br><pre>
  • Zeilen und Absätze werden automatisch erzeugt.

Weitere Informationen über Formatierungsoptionen