Entity Reference filtern?
Eingetragen von mabo1972 (91)
am 01.03.2016 - 15:02 Uhr in
am 01.03.2016 - 15:02 Uhr in
Ich arbeite sehr viel mit entityreferences und views.Gibt es eine Möglichkeit bereits verwendete Referenzen auszufiltern?
Beispiel:
Als Referenzen stehen A,B,C,D,E zur Verfügung
Content X verweist auf Referenz A,B
Bei der Anlage von Content Y stehen wieder alle Referenzen zur Verfügung. Gibt es hier evtl. die Möglichket das bereits referenzierte Elemente ausgefiltert werden?
Ziel wäre das bei der Anlage von Content Y ich nur noch die Referenzen C,D,E zur Auswahl bekommen würde.
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich würde das einfach über
am 01.03.2016 - 17:31 Uhr
Ich würde das einfach über eine Entity Reference View machen. Diese View kannst Du dann so einstellen, dass über einen Filter die bereits zugeordneten Referenz-Nodes ausgeblendet werden.
Ich mach das bereits über
am 01.03.2016 - 20:24 Uhr
Ich mach das bereits über eine Entity Reference View. Das mit den Filter ist mir noch nicht so ganz klar. Wie heißt der den genau bzw. was muss ich beachten?
Hat jemand vielleicht ein Beispiel?
drupal is cool!
Der Trick ist in More im Contextual filter
am 02.03.2016 - 16:56 Uhr
versteckt.
Die bereits selektierten IDs werden als Filter übergeben. Beim Contextual Filter der View kannst du unter More angeben, dass 1. mehrere Werte übergebenw erden können und 2. du genau diese Werte ausschließen möchtest. Das war's!
Wilfried
Drupal: a CMS without typo in its name
Auf Drupal.org bin ich als Pepe Roni unterwegs!
Das mache ich bereits so löst
am 03.03.2016 - 09:00 Uhr
Das mache ich bereits so löst aber mein Problem nicht! Mit dieser Methode kann ich die Anzeige der bereits hinzugefügten Referenzen bei der Anlage des Inhalts unterdrücken. Das gilt allerdings nur für den aktiven "node/add" oder "edit" sprich wenn ich einen node mit bereits hinzugefügten Refernzen zum Bearbeiten öffne werden mir die existierenden Referenzen nicht mehr zur Auswahl angezeigt. Das ist auch gut so.
Wenn ich jedoch einen komplett neuen node erzeuge erhalte ich wieder alle möglichen Referenzen zur Auswahl. Das ist genau mein Problem. Ich habe einen Pool von Teilen die wenn sie Referenziert wurden nicht mehr für neue Nodes zur Verfügung stehen sollten.
drupal is cool!
Dann müsstest du an diesen Zielen etwas tun, was selektierbar is
am 03.03.2016 - 11:04 Uhr
Das T wollte der Titel nicht mehr ;-)
Also, wenn ein Ziel referenziert wurde, musst du in einer Rule (zum Beispiel beim Speichern des Nodes) im Ziel ein Flag setzen (ein boolean field), dass dieses Ziel künftig nicht mehr selektiert werden darf.
Dieser Zielnode muss natürlich von der Rule anschließend gespeichert werden.
Grüße
Ronald
In der Entity Reference View,
am 03.03.2016 - 11:12 Uhr
In der Entity Reference View, die die Referenzen A,B,C,D,E ausgibt, setzt Du eine Beziehung, und zwar auf die Entität, die verweist (also Content-Typ x/ A bridge to the content entity that is referencing...). Diese Beziehung nennst Du z.B. "X-Referenz".
Dann setzt Du einen Filter "Beitrags-ID" unter Verwendung der Beziehung "X-Referenz" und Operator = "Ist leer (Null)".
Fertig ist die Laube.
Gute Idee
am 03.03.2016 - 11:38 Uhr
In der Entity Reference View, die die Referenzen A,B,C,D,E ausgibt, setzt Du eine Beziehung, und zwar auf die Entität, die verweist (also Content-Typ x/ A bridge to the content entity that is referencing...). Diese Beziehung nennst Du z.B. "X-Referenz".
Dann setzt Du einen Filter "Beitrags-ID" unter Verwendung der Beziehung "X-Referenz" und Operator = "Ist leer (Null)".
Fertig ist die Laube.
Die Idee hatte ich auch bereits ;-)
Das funktioniert zwar dann für die neuen Nodes sprich bereits referenzierte werden nicht mehr angezeigt. Allerdings werden bereits aktive Referenzen in bestehenden Nodes beim Bearbeiten auch nicht mehr gezeigt.
Rules zu verwenden hatte ich auch schon im Sinn. Auf die Idee ein Flag zu setzen bin ich noch nicht gekommen werde das mal testen.
Edit: Kommando zurück ;-) der Tipp mit der Beziehung war doch richtig. Ich hatte immer die falsche Beziehung gewählt! Jetzt schein es zu funkionieren.
Vielen Dank nochmal für eure Hilfe
drupal is cool!