Views 3: Inhalte Zeigen, die eine Field-collection besitzen, welche den Term der aktuellen Term-Page haben

am 12.01.2014 - 11:28 Uhr in
Hallo Drupalgemeinde :)
Ich habe folgendes Problem:
für eine Rezeptsammlung habe ich einen Node-Typ Rezept. Dort gibt es eine Field-Collection "Rezept-Zutaten". Rezept-Zutaten sind Menge, Einheit und die Zutat.
Zutaten selbst habe ich als Vokabular hinterlegt.
Sooo.. wenn wir jetzt auf die Term-Seite einer Zutat (Taxonomiebegriff) gehen, erscheint natürlich kein Inhalt. Die Zutaten sind ja in einer Field-Collection hinterlegt und nicht in der Node selbst. Ich möchte nun also via Views und Beziehungen irgendwie auf einer Term-Page alle Rezepte zeigen, die diese Zutat verwenden.
Dass der Kontextfilter die aktuelle Term-ID ist, ist soweit klar. Nur aus den Beziehungen im Zusammenhang mit den Field-Collections werde ich einfach nicht schlau. Entweder werden mir alle Nodes angezeigt, oder (wie meistens) garkeine.
Any ideas? hat jemand schon mal vor dem selben Problem gestanden und vielleicht eine Lösung für mich?
Besten Dank!
- Anmelden oder Registrieren um Kommentare zu schreiben
Soweit ich weiß, kannst du
am 14.01.2014 - 09:47 Uhr
Soweit ich weiß, kannst du über Beziehungen nur eindeutige Elemente zuordnen - also Nodes <-> Taxonomien etc. Warum legst du die Rezept-Zutaten nicht als Taxonomien an (wie beschrieben) und verwendest in den Nodes ein Taxonomy Reference-Feld ein (Anzahl auszuwählender Elemente auf unbegrenzt). Dann wäre die Zuordnung im Node und außerdem könntest du auf einer Zutaten-View die zugehörigen Rezepte ausgeben lassen.
Ich dachte man kann irgendwie
am 14.01.2014 - 09:56 Uhr
Ich dachte man kann irgendwie auch eine Beziehung mit einer Beziehung koppeln, also quasi über 2 Ecken die node mit der Taxonomie verknüpfen.
zu deiner Frage:
Die Fieldgroup macht an sich an der Stelle dort schon Sinn, denn zu einer zutat (als Term), gehört immer eine Mengenangabe und eine Einheit (z.B. 5 TL)
In dieser Konstellation kann ich a) sicher stellen, dass alle Felder einer Zutat (Zutat, Menge, Einheit) gefüllt sind und b) mit "weitere Hinzufügen" eine Feldgruppe, statt 3x separate Felder angelegt werden.
Naja,.. wenn's wirklich nicht funktioniert, dann muss ich wohl oder übel den View via SQL nachbauen. Ist zwar unflexibel bei Änderungen, aber wenn's nicht anders geht.... Schade drum =(
Trotzdem vielen Dank!
Die Fieldgroup kannst du doch
am 14.01.2014 - 10:22 Uhr
Die Fieldgroup kannst du doch in deinem Node eingeben. Die Mengenangabe und Taxonomiereferenz stellst du dann z.B. Inline dar - so berührt die Menge deinen Begriff nicht und dein Vorhaben lässt sich umsetzen.
Technisch geht das schon, nur
am 14.01.2014 - 11:07 Uhr
Technisch geht das schon, nur ist das Handling schlecht, wenn Mengenangaben, Zutat etc. nicht in einer Entity verbunden sind. Erstmal müsste man dann pro Zutat 3x "weitere Hinzufügen" klicken, dann lässt sich das nicht ordentlich sortieren, es kann nicht sichergestellt werden, dass Mengenangaben, Zutat etc. jeweils in gleicher Anzahl und in richtiger Reihenfolge da stehen.
die Field Collection auf der Node macht schon sinn. Meine Frage dreht sich aber darum, wie ich von der Term-Page (also Die Zutat in der Fieldcollection) alle Rezepte mit z.B. Brokkoli angezeigt bekomme. Dort fehlt nämlich die Brücke zwischen Term und Rezept-Node. Denn die Beziehung bezieht sich auf die Field-Collection und nicht auf das Rezept.
Ich glaube wir reden hier aneinander vorbei ;) passiert. Aber siehe selbst: www.weg-essen.de
Rezept hat fieldgroup "Zutaten". "Zutaten" besteht aus Menge (float), Einheit (Listen-Feld) und Zutat (Term)
kaisen schrieb Technisch geht
am 14.01.2014 - 11:16 Uhr
Technisch geht das schon, nur ist das Handling schlecht, wenn Mengenangaben, Zutat etc. nicht in einer Entity verbunden sind. Erstmal müsste man dann pro Zutat 3x "weitere Hinzufügen" klicken, dann lässt sich das nicht ordentlich sortieren, es kann nicht sichergestellt werden, dass Mengenangaben, Zutat etc. jeweils in gleicher Anzahl und in richtiger Reihenfolge da stehen.
Doch, das ist kein Problem. Die Sortierung realisierst du über Views, die Mengenangaben sind den Referenzfeldern zugeordnet. Alternativ ginge auch Webform (AJAX) als benutzerfreundliche Eingabemethode.
die Field Collection auf der Node macht schon sinn. Meine Frage dreht sich aber darum, wie ich von der Term-Page (also Die Zutat in der Fieldcollection) alle Rezepte mit z.B. Brokkoli angezeigt bekomme. Dort fehlt nämlich die Brücke zwischen Term und Rezept-Node. Denn die Beziehung bezieht sich auf die Field-Collection und nicht auf das Rezept.
Dazu brauchst du einen Filter (z.B. Taxonomie-Term) und gibst dann in einem Block die referenzierten Nodes aus. Wenn es automatisch passieren soll (was sinnvoll wäre), dann über Kontextfilter. Dazu brauchst du nur die Standard-Taxonomy-View anzupassen.
Allgemein führen ja bekanntlich viele Wege nach Rom ;)
Es geht auch noch anders. Du
am 14.01.2014 - 12:03 Uhr
Es geht auch noch anders. Du mußt die Taxonomie Darstellung mit Views zu überschreiben. Du machst das über eine Node-View (also nicht Taxonomie-View) mit einer Beziehung zur Field-Collection über das Field-Collection Feld. Weiter brauchst Du über diese Beziehung eine weitere Beziehung zur Taxonomie. Als Argument (= Context Filter) nimmst Du dann den Namen des Taxonomie-Begriffes über die letzte Beziehung. Ist alles ein bißchen tricky und nicht so direkt eingängig, sollte aber funktionieren.
Beste Grüße
Werner
Hab ne lösung :)
am 14.01.2014 - 12:11 Uhr
Also erstmal vielen Dank für den Input, hab's jetzt aber ganz anders gelöst bekommen:
Ersteinmal nehme ich keine node- oder taxonomy-view sondern einen Field-Collection-View. Als Beziehung habe ich "Field collection item: Entity with the Zutaten (field_zutaten)". Und der Kontextfilter ist Field collection item: Zutat (das ist ja ein Term in der Fieldcollection).
Jetzt lassen sich problemlos die Titel und der Rezepte mit der jeweiligen Zutat herausfiltern.
Vielen Dank für's mitdenken! Ist echt um die Ecke denken mit Anspruch!!