[gelöst]Hinweis für "Ihre Suche nach xy hat y Ergebnisse geliefert" für exposed Filter
Eingetragen von Lissy01 (278)
am 21.01.2014 - 07:26 Uhr in
am 21.01.2014 - 07:26 Uhr in
Ich habe ein paar Views mit sehr umfangreichen Exposed Filtern.
Ich möchte nun auf jeder Ergebnisseite oben einen Block einfügen, der dem User noch mal in Erinnerung bringt, welche Filter er gesetzt hat und anzeigt, wieviele Ergebnisse die Suche liefert.
Gibts dafür ein Modul, was so einen Blog erzeugt und automatisiert die Parameter aus der URL liest und mit Klarnamen anzeigt?
Oder muß ich das selbst für jede View erstellen?
- Anmelden oder Registrieren um Kommentare zu schreiben
zum einen meinst du
am 21.01.2014 - 08:14 Uhr
zum einen meinst du wahrscheinlich einen block,der filter wird doch sowieso so angezeigt wie er der nutzer gewählt; ansonsten kannst du doch beim filter angeben "letzte eingabe merken"
C.A.W. Webdesign
Huch, danke...klar meine ich
am 21.01.2014 - 08:21 Uhr
Huch, danke...klar meine ich einen Block.
Da war ich mit den Gedanken schon bei einem anderen Thema. ;-)
Ja, die Filter werden in der linken Spalte angezeigt und dort wird sogar farbig hervorgehoben, welche gesetzt sind.
Dennoch hätte ich es auch noch gerne oben auf der Seite.
Und eben auch die Anzahl der Ergebnisse.
Es klingt einfach netter, wenn da noch steht: Ihre Suche nach...
Und es gibt tatsächlich User, die vergessen, daß sie einen Filter gesetzt haben, wenn es hier nicht noch mal steht.
Gibts da evt. eine dynamische Möglichkeit, das im Kopf der View bereit zu stellen stat in einem Block?
Ich habe das bein einem anderen projekt dort einprogrammiert.
Das möchte ich aber nicht bei jeder View mit unterschiedlichen Filtern machen und bei jeder Änderung anpassen müssen.
ach so... fällt mir nichts
am 21.01.2014 - 08:42 Uhr
ach so... fällt mir nichts ein
C.A.W. Webdesign
doch was gefunden
am 23.01.2014 - 07:39 Uhr
doch was gefunden https://drupal.org/project/exposed_filter_data
C.A.W. Webdesign
Ha, Morgenstund hat Gold im
am 23.01.2014 - 07:56 Uhr
Ha, Morgenstund hat Gold im Mund. ;-)
Danke, ich hab's gleich getestet.
Die Ausgabe muß wirklich noch sehr geschönt werden.
So wie es in der Modulbeschreibung steht.
Das steht jetzt z.B.
Filtered by:
field_stauden_typ_value:
All
field_stauden_bluetenfarbe_value:
All
field_stauden_blattfarbe_value:
3
field_stauden_lebensraum_value:
All
field_stauden_licht_value:
All
field_stauden_bodenfeuchte_value:
All
field_stauden_kalkgehalt_value:
All
field_stauden_eigenschaft_value:
All
field_stauden_verwendung_value:
All
Aber sicher kann man im Template noch eine automatische Übersetzung mit den Felder-Klarnamen einbauen.
Also "Lebensraum" statt "field_stauden_lebensraum_value".
Du kannst dir die Ausgabe der
am 23.01.2014 - 08:00 Uhr
Du kannst dir die Ausgabe der Suchergebnisse direkt in den Header des Views ausgeben lassen.
Hierfür bietet dir Views entsprechende Token, die du dann im Headerbereich verwenden kannst. Anbei ein Screenshot, der zeigt, wo du das Ganze findest.
Das sollte deinem Wünschen schon ziemlich "nahe" kommen.
SteffenR
http://www.twitter.com/_steffenr
Drupal-Initiative e.V.
Das nennt man wohl den Wald
am 23.01.2014 - 09:12 Uhr
Das nennt man wohl den Wald vor lauter Bäumen nicht sehen.
Danke Steffen, werde ich ausprobieren.
Hier noch die Ergänzung, wie
am 24.01.2014 - 14:42 Uhr
Hier noch die Ergänzung, wie ich das Problem für mich nun gut lösen konnte.
Die Ergebnis-Zusammenfassung im Header liefert ja nur die Anzahl der Ergebnisse, nicht aber die Filter.
Deshalb habe ich Global:PHP gewählt und hier folgendes Eingetragen:
<div class="title">Für Ihre Suche nach Pflanzen mit folgenden Eigenschaften:</div>
<?php
print get_exposed_filter_output();?>
<div class="resultcount">erhalten Sie <?php print format_plural(count($results), '1 Ergebnis', count($results).' Ergebnisse.');?>:</div>
get_exposed_filter_output() ergibt die Filter, mit count($results) gebe ich die Anzahl der Ergebnisse aus.
Da ich die Ergebnisse dymanisch nachlade beim runter Scrollen (JQuery-Modul) macht es keinen Sinn, die Seiten mit auszugeben.
Das Template vom Modul exposed_filter_data habe ich wie folgt angepasst:
<?php
/**
* @file
* Basic template file
*/
?>
<?php
$data=field_info_instances("node",'gartenstauden');
if (isset($exposed_filters)): ?>
<div class="exposed_filter_data">
<div class="content">
<?php foreach ($exposed_filters as $filter => $value): ?>
<?php if ($value):
$filterlabel = preg_replace('/_value/','',$filter);
$filterlabel2 = $data[$filterlabel]["label"];
?>
<div class="filter"><div class="name"><?php print $filterlabel2; ?>: </div>
<?php if (is_array($value)): ?>
<div class="value"><?php print implode(', ', $value); ?></div>
<?php else: ?>
<div class="value"><?php print $value; ?></div>
<?php endif; ?>
</div>
<?php endif; ?>
<?php endforeach; ?>
</div>
</div>
<?php endif; ?>
$data=field_info_instances("node",'gartenstauden');
Holt die Infos über den Inhaltstyp Gartenstauden, dessen gefilterten Einträge in dieser View ausgegeben werden.
Die Felder im Inhaltstyp lauten genauso, wie die Filter in der View automatisch benamt werden.
Nur, daß im Filter jeweils '_value' angehängt wird.
Das mache ich damit weg: $filterlabel = preg_replace('/_value/','',$filter);
Mit eval('$filterlabel2 = '.$data[$filterlabel]["label"].';');
baue ich eine Variable dynamisch auf, die ich dann unten ausgebe anstelle von der ursprünglichen Variable $filter.
Den Titel habe ich aus dem Template entfernt, weil ich dieses für mehrere Views einsetzen möchte.
Deshalb nehme ich den Titel lieber mit in den Header der View, um in individuell ausgeben zu können.
Sicher muß noch einiges abgesichert werden (Fall abfangen, daß ein Filtername doch mal anders lautet ect.), aber für's Erste bin ich doch sehr zufrieden mit dieser Lösung.