[gelöst] Relation und Views
am 29.04.2015 - 14:30 Uhr in
Hallo,
Ich möchte eine Stückliste unter Drupal erstellen. Dazu habe ich zwei Content-Types: PRODUKT (das Ergebnis) und KOMPONENTE (die Komponenten des Produkts). Jetzt ist es so, dass eine Komponente mehrfach in einem Produkt vorkommen kann (z.B. 5 Stück) und andererseits in mehreren Produkten vorkommen kann. Nach einigen Recherchen habe ich mich für das Modul "Relation" entschieden, da ich in der Relation die Anzahl hinterlegen kann.
Der Relation-Type zw. PRODUKT und KOMPONENTE ist ziemlich einfach: direktional, PRODUKT ist die Source, KOMPONENTE ist das Target und die Relation bekommt noch das zusätzliche Feld ANZAHL.
Bei der Erstellung von Testdaten habe ich folgendes angegeben:
Produkt "PA" hat Relations zu Komponenten "K1" (10 Stück), "K2" (20 Stück) und "K3" (30 Stück).
Produkt "PB" hat eine Relation zur Komponmente "K1" (100 Stück).
Nun möchte ich mir einen View bauen, der folgendes darstellen soll
Produkt Komponente Anzahl
PA K1 10
PA K2 20
PA K3 30
PB K1 100
soweit, so gut.
Wenn ich eine View baue, habe ich zwei Möglichkeiten die Relation zu integrieren
a) Node -> Node (das brauche ich, um vom PRODUKT auf die KOMPONENTE zu kommen
b) Node -> Relation (das brauche ich, um vom PRODUKT auf die ANZAHL zu kommen
Ich erstelle nun also eine Relationship: Node -> Node (Required, Target, zweimal kein Avoid)
und noch eine RelationShip Node -> Relation (Required, Source, kein Avoid, Verwendung der Node -> Node relationship)
Mein Ergebnis ist allerdings folgendes:
PA K1 10
PA K1 20
PA K1 30
PA K2 10
PA K2 20
PA K2 30
PA K3 10
PA K3 20
PA K3 30
PB K1 100
Das Ergebnis hängt allerdings nicht davon ab, ob ich nun "Avoid" verwende oder nicht, oder ob ich "Required" verwende oder nicht, oder ob ich Source/Target/Any vertausche. Obiges Ergebnis ist der "beste" Fall, im schlechtesten Fall bekomme ich gar kein Ergebnis.
Ich vermute stark, dass der Ursprung darin liegt, dass ich zwei "Relationships" verwende, einerseits die Relation zwischen den Nodes (PRODUKT -> KOMPONENTEN) und andererseits zwischen Node und Relation (PRODUKT -> ANZAHL.
Ich kämpfe seit einiger Zeit mit diesem Problem, und jetzt gehen mir langsam die Ideen aus. Auch Die Verwendung von Zusatzmodulen wie "Views Merge Rows" oder "Views Aggregator" hat keinen Erfolg gebracht, da ich der View anscheinend nicht beibringen kann, welche der 9 Ergebniszeilen von oben die richtige ist (in meinem Fall die erste, die fünfte und die neunte).
Weiss jemand von Euch Bescheid, was ich tun kann um mit einer Relationship sowohl auf den Target-Node als auch auf die Relation selbst zugreifen kann? Selbst die Verwendung der Node -> Node Relationship in der Node -> Relation Relationship hat (leider) nicht geklappt.
Danke für Ratschläge!
- Anmelden oder Registrieren um Kommentare zu schreiben
Geht es um Produkte für einen
am 01.05.2015 - 23:52 Uhr
Geht es um Produkte für einen Shop? Dann würde ich Ubercart bzw. Commerce nutzen. Ansonsten wäre References vielleicht die bessere Wahl (Node References zwischen den Inhaltstypen).
Web: Halle im Bild | n8aktiv
Social: Facebook | Xing
Hallo, nein - hier geht es um
am 03.05.2015 - 16:20 Uhr
Hallo,
nein - hier geht es um kein Shop-System bzw. Produkte für ein solches.
Mit References bin ich leider nicht zum Ziel gekommen, da es mir nicht möglich war die ANZAHL sinnigerweise in der Node Reference zw. PRODUKT und KOMPONENTE zu hinterlegen.
Wenn so ein Ansatz auch funktioniert, wäre ich froh.
Frühere (aber unbefriedigende) Lösungen zu dem Problem haben bei mir so ausgesehen:
a) Ich mache pro ANZAHL eine Node Reference zw. PRODUKT und KOMPONENTE. Wenn z.B. die Anzahl 5 ist, dann werden genau 5 Node-References zw. PRODUKT und der entsprechenden KOMPONENTE erstellt. Ein Feld des Views zählt dann die Anzahl der Referencen (entspricht ANZAHL) und es wird pro KOMPONENTE aggregiert. Der Ansatz ist in Ordnung für kleine Anzahl (< 10), aber für große (20 und mehr) sehr zeitaufwendig, da jede Referenz einzeln gemacht werden muss
b) Einführung eines neuen Content-Types als "Verknüpfungstabelle" zw. PRODUKT und KOMPONENTE. Insgesamt nicht schön, weil umständlich und für den Benutzer nicht intuitiv und klar handzuhaben.
Wenn es bessere Lösungen gibt, dann freue ich mich!
Danke
KKG
Dann solltest Du eine
am 03.05.2015 - 17:15 Uhr
Dann solltest Du eine [do:field_collection] benutzen. Damit kannst Du eine wiederholbare Gruppe von Feldern definieren. Dann könnte das eine Feld die Anzahl sein und ein zweites dann die Referenz. Die Benutzung der Field Collection ist anfangs etwas gewöhnungsbedürftig.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
[GELÖST] Relation und Views
am 04.05.2015 - 10:41 Uhr
Hallo wla,
Danke, das war genau das, was ich gesucht habe. Es funktioniert perfekt! Du hast mir viel Arbeit erspart!
lg
KKG