2009-03-30 4 views
0

Ich habe vier Blockansichten auf einer Seite (nenne sie "Info" -Seite), die nach Nähe gefiltert sind, um mir vier Informationen zu einem bestimmten gefilterten Ort zu geben.Kann ich einen einzelnen exponierten Filter verwenden, um mehrere Blockansichten auf einer anderen Seite zu filtern?

Ich möchte in der Lage sein, eine Introseite mit einem exponierten Proximity-Filter zu erstellen, die bei der Ausführung mich zur Seite führen und gleichzeitig die vier Ansichten mit der auf der Intro-Seite eingegebenen Nähe filtern würde.

Wie kann ich das tun? Ich bin neu zu PHP aber lernend .... bereit, daran zu arbeiten! ja

Dank

Antwort

3

Wenn Sie Ansichten in Drupal 6 verwenden sind, dann ist die Antwort - mit einigen wichtigen Einschränkungen.

Im Gegensatz zu normalen Formularen in Drupal kommen die exponierten Filterwerte von Views als $ _GET-Parameter raher als $ _POST. Das bedeutet, dass Sie einen exponierten Filter einfach durch Anhängen von? Filter = value & filter2 = value2 usw. an die aktuelle URL füllen können.

Der Kicker ist, dass wenn mehrere Ansichten auf derselben Seite nach den gleichen Filterschlüssel in der URL suchen, beide den eingehenden Filterwert verwenden. Sie müssen die Liste der angezeigten Filter jeder Ansicht konfigurieren, um sicherzustellen, dass alle dieselbe Liste von Filtern verwenden, mit der gleichen Liste von Schlüsseln für die eingehenden Werte. Wenn Sie möchten, dass das Filterformular nur einmal angezeigt wird, müssen Sie möglicherweise auch etwas schlaues Jonglieren durchführen. Views möchte, dass es in jeder Ansicht standardmäßig angezeigt wird. Es gibt jedoch eine Option für jede Ansicht, um die exponierten Filter in einen Block zu verschieben ; Wenn Sie dies tun und den exponierten Filterblock NICHT aktivieren, werden die exponierten Filterwidgets der Ansicht effektiv ausgeblendet, während die Filterung aktiv bleibt, wenn sie über die URL erfolgt.

Zusammenfassend: stellen Sie sicher, dass alle vier Ansichten die gleiche Liste der exponierten Filter haben und die gleichen "Schlüssel" für die Filter verwenden. Blenden Sie die exponierten Filterwidgets in allen Ansichten außer in einer aus. An diesem Punkt sollte es funktionieren.

+0

Eaton, Danke für Ihre schnelle Antwort. Ich glaube, ich verstehe, aber nicht sicher, wie zu implementieren ist. Bevor es weiter geht ... kann dies mit Views in Drupal 5.x geschehen? Ich bin momentan wegen 5.x in einigen Fällen gesperrt, weil einige Module in 6.x nicht verfügbar sind. Jeff (jdm843) –

+0

Ausgesetzte Filter funktionieren immer noch in D5, aber Sie müssen viel vorsichtiger sein: Sie verwenden Tasten wie 'filter1' und 'filter2' - was bedeutet, dass Sie alle Filter für th behalten müssen verschiedene Ansichten synchron, so dass URL-Schlüssel übereinstimmen. Wenn Sie das tun, sollte es noch funktionieren! – Eaton

Verwandte Themen