Komplexer Views-Filter für Fieldcollection-Elemente
am 29.08.2013 - 14:44 Uhr in
Hallo Zusammen!
Ich hab ein Problem mit einem etwas komplexeren Node, Fieldcollections und dem Views-Filter.
Ich versuche es mal grob an einem Beispiel zu skizzieren (wenns nicht verständlich ist, bitte sagts mir ;-)
Prinzip:
- Ich habe ein System in dem mehrere Wohnungen verzeichnet sind. Jede Wohnung ist ein Node.
- In den Wohnungen befindet sich in jedem Raum ein Schrank. Jeder Schrank ist ein Fieldcollection-Element im jeweiligen Node.
- Dieser Schrank enthält Kleidungsstücke für Frauen oder Männer oder er ist leer.
Der Inhaltstyp sieht ungefähr so aus:
- Name der Wohnung (Textfeld)
- Anschrift der Wohnung (Textfeld)
- Fieldcollection: Raum (Select mit Wohnzimmer / Schlafzimmer / Küche) | Frauen-Kleidungsstücke (Checkbox) | Männer-Kleidungsstücke (Checkbox)
Ich möchte nun mittels Views und einem exposed-Filter die Wohnungen (Nodes) in folgender Reihenfolge (kombinert) herausfiltern nach folgenden Kriterien:
- Checkbox: Schrank ist gefüllt (z.B. gib mir nur die Nodes aus, in dem sich gefüllte Schränke befinden)
- Select: Wohnzimmer / Schlafzimmer / Küche (z.B. gib mir nur die Nodes aus, in dem sich gefüllte Schränke in Wohnzimmern befinden)
- Select: Frauen / Männer (z.B. Gib mir nur die Nodes aus, in dem sich gefüllte Schränke im Wohnzimmern befinden, die Frauen-Kleidungsstücke enthalten)
Das Problem das ich nun habe:
Wähle ich nun wie oben im exposed-Filter aus "Gib mir nur die Nodes aus, in dem sich gefüllte Schränke im Wohnzimmern befinden, die Frauen-Kleidungsstücke enthalten",
werden mir momentan falsche Ergebnisse ausgeworfen.
Denn der Filter schmeißt mir alle Nodes aus die:
- Schränke im Wohnzimmer haben (unabhängig ob gefüllt oder leer)
- Schränke mit Frauen-Kleidungsstücken haben (unabhängig in welchem Raum)
- Schränke haben die gefüllt sind (unabhängig ob mir Frauen oder Herren-Kleidern)
Ich müsste nun eigentlich einen Filter haben, der die einzelnen Fieldcollection-Elemente durchsucht und wenn die Suchkriterien zutreffen, das Node in der Ergebnisliste anzeigt.
Geht das irgendwie?
Oder würdet ihr das ganze anders aufbauen?
Wenn ja, wie könnte das aussehen?
Gibts für sowas ein Modul?
Vielen Dank vorab und Grüße!
- Anmelden oder Registrieren um Kommentare zu schreiben
Vielleicht noch mal anders.
am 03.09.2013 - 12:33 Uhr
Leider habe ich noch keine Lösung für das oben beschriebene Problem.
Ich versuche das nochmal an einem konkreten Beispiel zu verdeutlichen.
Eingabe:
Ausgabe:
Problem:
Wie kann ich eine so verknüpfte Suche erstellen?
Also eine Suche, die wenn ich "Volleyball" und "Männer" Suche, nicht alle Volleyball-Angebote UND alle Männer-Angebote auswirft, sondern NUR die Volleyball-Angebote die auch wirklich für Männer sind.
Das treibt mich grad etwas zur Verzweifelung und ich hoffe dass das mit Drupal überhaupt zu lösen ist.
Ich bin über jeden Tipp dankbar!
Herzliche Grüße!
t2k
Das ist jetzt reines
am 03.09.2013 - 13:08 Uhr
Das ist jetzt reines Brainstorming.
Ob man damit in Detail zu einer praktikablen Loesung Deiner Aufgabe kommt muesste man testen. Eventuell ist die Idee ja auch abwegig.
Mit dem Modul Search API kann man beliebig viele Suchindexe verwenden - bspw. "Volleyball" und "Männer" und "Volleyball" und "Frauen" usw..
Einen Suchindex kann man sehr granular konfigurieren hinsichtlich dessen was indiziert wird und demzufolge suchbar ist.
Mit dem Modul Search pages kann man verschiedene Suchseiten mit eigener URL und dazugehoerigem Suchindex erstellen.
Search API arbeitet auch mit Views.
Das Problem bei all den
am 03.09.2013 - 13:29 Uhr
Das Problem bei all den Suchmethoden ist soweit ist das sehe, dass die Sportangebote "zeilenweise" durchsucht werden müssen.
Beispiel:
Field-Collection Sportangebote:
------------------------------------------------------------------------
Angebot: Volleyball | Zielgruppe: Männer, Frauen
------------------------------------------------------------------------
Angebot: Fußball | Zielgruppe: Frauen
------------------------------------------------------------------------
Angebot: Basketball | Zielgruppe: Kinder
------------------------------------------------------------------------
Durchsuche ich jetzt den ganzen Node nach "Volleyball" und "Kinder" findet er natürlich was und wirft mir den Node als Ergebnis aus ... aber das ist ja nicht richtig.
Was meinst du dazu?
Oder ist das so nicht realisierbar?
Wie könnte man es sonst machen?
Vielen Dank für deine Antwort und herzliche Grüße!!!
t2k
Kommt darauf an wie fit Du in
am 03.09.2013 - 13:30 Uhr
Kommt darauf an wie fit Du in SQL bist.
Aktiviere in den Views Einstellungen die Anzeige der Datenbankabfragen.
Mitunter kann einem das helfen die Filterkriterien zu optimieren.
Danke für deine Antwort! Die
am 17.12.2013 - 20:19 Uhr
Danke für deine Antwort!
Die Sache lag jetzt einige Monate brach. Nun will ich mich aber damit noch einmal befassen.
Die Datenbankabfragen werden mir bereits angezeigt.
Ich könnte auch theoretisch eine SQL-Query selbst erstellen.
Aber wie und wo mache ich das? Oder brauch ich dafür ein zusätzliches Modul?
Danke und Grüße!
t2k
du kanst field collections
am 18.12.2013 - 05:37 Uhr
du kanst field collections felder doch auch als exposed filter machen...
Hallo Caw, danke für deine
am 19.12.2013 - 15:47 Uhr
Hallo Caw,
danke für deine Antwort!
"Exposed" sind die Filter aber bereits.
Das Problem ist nur, dass diese weder als normale noch als exposed-Filter die gewünschten Ergebnisse liefern.
Die Frage ist ja, ob ich mit einer manuell eingegeben SQL-Query vielleicht zum Ziel komme. Nur weiß ich nicht wie und wo ich eine solche in Views eingeben kann.
Beste Grüße!
t2k