Exposed Filter strukturieren
Eingetragen von ThuleNB (379)
am 30.06.2014 - 19:21 Uhr in
am 30.06.2014 - 19:21 Uhr in
Hallo Community,
ich habe eine Seite mit einem View und mehreren Exposed Filtern. Diese Filter versuche ich nun ansehnlich und nutzerfreundlich zu strukturieren.
Dabei habe ich schon diese Module versucht:
- Better Exposed Filters (BEF): dieses Modul habe ich im Einsatz und nutze einige Funktionen davon. Leider bietet es keine Möglichkeit, exposed Filter zu strukturieren
- More Exposed Filters in Blocks (MEFIBS): Hiermit kann ich das Exposed Form in mehrere Blöcke unterteilen und die Blöcke in unterschiedlichen Regionen platzieren. Leider bekommt jeder erstelle Block einen eigenen "Start" und "Zurücksetzen" Button. Das ist für meinen Fall äußerst schlecht und der Maintainer des Moduls wird das nicht bearbeiten.
- Views Exposed Groups: Dieses Modul wäre ideal für mich. Leider ist es nicht kompatibel mit BEF (Better Exposed Filters), denn man kann nur BEF oder Views Exposed Groups aktivieren. Auf BEF kann ich nicht verzichten.
Kennt von euch jemand ein Modul oder einen Weg, wie ich meine Exposed Filter nutzerfreundlicher machen kann?
Grüße
ThuleNB
- Anmelden oder Registrieren um Kommentare zu schreiben
Für die Exposed Filter gibt
am 01.07.2014 - 08:58 Uhr
Für die Exposed Filter gibt es ein Template, mit dem kommt man schon ziemlich weit, z.B. um DIVs einzubauen, eigene Klassen etc.
Schau mal im Ordner \sites\all\modules\views\theme\views-exposed-form.tpl.php.
Dieses Template in das eigene Theme kopieren, umbenennen, z.B. views-exposed-form--gugus-v01.tpl.php, wobei "gugus_v01" der Name der View ist, und nach Wunsch anpassen.
Cache löschen nicht vergessen.
Weitere Info z.B. hier und hier.
lg leda
"Du liebst es, Du brauchst es oder Du gibst es weg"
www.leda.ch
Hi Leda, danke für den Tipp.
am 01.07.2014 - 13:16 Uhr
Hi Leda,
danke für den Tipp. Ich habe mir das mal angeschaut, wird wahrscheinlich schwierig für mich als No-Coder :-). Es wäre mir aber eigentlich schon sehr geholfen, wenn innerhalb meiner Exposed Filter zwei Gruppen machen könnte:
Von:
Filter A
Filter B
Filter C
Filter D
Filter E
Filter F
Filter G
Zu:
Filter A
Filtergruppe
Filter B
Filter C
Filter D
Filtergruppe
Filter E
Filter F
Filter G
Kann ich das über die views-exposed-form.tpl.php schaffen? Diese sieht bei mir so aus:
<?php if (!empty($q)): ?>
<?php
// This ensures that, if clean URLs are off, the 'q' is added first so that
// it shows up first in the URL.
print $q;
?>
<?php endif; ?>
<div class="views-exposed-form">
<div class="views-exposed-widgets clearfix">
<?php foreach ($widgets as $id => $widget): ?>
<div id="<?php print $widget->id; ?>-wrapper" class="views-exposed-widget views-widget-<?php print $id; ?>">
<?php if (!empty($widget->label)): ?>
<label for="<?php print $widget->id; ?>">
<?php print $widget->label; ?>
</label>
<?php endif; ?>
<?php if (!empty($widget->operator)): ?>
<div class="views-operator">
<?php print $widget->operator; ?>
</div>
<?php endif; ?>
<div class="views-widget">
<?php print $widget->widget; ?>
</div>
<?php if (!empty($widget->description)): ?>
<div class="description">
<?php print $widget->description; ?>
</div>
<?php endif; ?>
</div>
<?php endforeach; ?>
<?php if (!empty($sort_by)): ?>
<div class="views-exposed-widget views-widget-sort-by">
<?php print $sort_by; ?>
</div>
<div class="views-exposed-widget views-widget-sort-order">
<?php print $sort_order; ?>
</div>
<?php endif; ?>
<?php if (!empty($items_per_page)): ?>
<div class="views-exposed-widget views-widget-per-page">
<?php print $items_per_page; ?>
</div>
<?php endif; ?>
<?php if (!empty($offset)): ?>
<div class="views-exposed-widget views-widget-offset">
<?php print $offset; ?>
</div>
<?php endif; ?>
<div class="views-exposed-widget views-submit-button">
<?php print $button; ?>
</div>
<?php if (!empty($reset_button)): ?>
<div class="views-exposed-widget views-reset-button">
<?php print $reset_button; ?>
</div>
<?php endif; ?>
</div>
</div>
Grüße
ThuleNB
Als NoCoder wirds tatsächlich
am 01.07.2014 - 13:33 Uhr
Als NoCoder wirds tatsächlich etwas schwierig...
Da ist ja ein Loop bei
<?php foreach ($widgets as $id => $widget): ?>
.Im Array $widgets sind die "einzelnen Filter" drin. Das kann man auseinandernehmen, oder im Rahmen des Loops mit Klassen ergänzen, die man dann im CSS wieder zur Darstellung nutzen kann.
Ich habe den Loop auch schon ersetzt mit dem auseinandergenommenen und neu zusammengestellten Array. IOW: In diesem Stück Code kann man den ganzen BEF neu ordnen.
In Deinem Fall könntest Du mal das Devel-Modul installieren, die Array-Inhalte mit dpm anzeigen lassen, und im richtigen Moment DIVs einsprenkeln.
lg leda
"Du liebst es, Du brauchst es oder Du gibst es weg"
www.leda.ch