Views-Exposed-Form in mehrere Blöcke aufteilen
Bei einem Kundenprojekt standen wir vor dem Problem, dass einzelne Teile des exposed-Forms eines Views in verschiedenen Regionen der Seite angezeigt werden sollten. Zusätzlich dazu sollte beispielsweise das Feld für die Suchbox auf allen Seiten angezeigt werden, die weiteren Filter jedoch nur auf der Seite mit den Suchergebnissen. Normalerweise hätten wir das über hook_form_alter()
und/oder ein zusätzliches, selbst erstelltes Formular in einem eigenen Block zu lösen versucht. Ein Tipp von Daniel Wehner (dawehner) brachte mich jedoch auf eine andere Idee:
Mehrere Views-Displays
Man kann bei Views einfach ein vorhandenes Display clonen, also eine direkte Kopie davon erstellen. In diesem Fall habe ich von dem entsprechenden Page-Display eine Kopie gemacht und dort nur die Einstellungen der Filter entsprechend angepasst.
Die anderen Einstellungen (insbesondere der Seitenpfad des Displays) wurden nicht verändert.
Schaut man jetzt in die Block-Verwaltung, so hat man für jedes der beiden Displays einen Block mit dem entsprechenden exposed-Form. Diese Blöcke kann man nun auf verschiedenen Seiten und in unterschiedlichen Regionen anzeigen.