[gelöst] View: Filtern nach Wert größer Feld 1 und kleiner Feld 2 (Between-Suche)
Eingetragen von montviso (2188)
am 17.01.2014 - 13:16 Uhr in
am 17.01.2014 - 13:16 Uhr in
Es gibt ein Modul "Views between dates filter".
Eine ähnliche Funktion brauche ich für folgenden Anwendungsfall:
Der Inhalstyp Pflanze hat zwei Felder
Feld 1: Höhe von
Feld 2: Höhe bis
Der Benutzer bekommt einen Exposed Filter Namens Höhe und gibt einen Wert ein.
Der View-Filter soll nun die Datensätze liefern, wo der Wert größer/gleich Feld 1 und kleiner/gleich Feld 2 ist.
Gibt es dafür ein Modul oder gar eine Möglichkeit, das mit der Core-View zu machen?
Ich habe schon eine Idee, wie ich das per eigenem Modul lösen könnte, aber vorher wüßte ich gerne, ob ich eine einfache Lösung übersehen habe?
- Anmelden oder Registrieren um Kommentare zu schreiben
FIlter mit 2 Werten als Bereichssuche
am 17.01.2014 - 15:14 Uhr
Wo liegt das Problem, einen Filter einzurichten, der genau diese beiden Bedingungen abfragt. Der erste Filter >=1 wird vorgegeben und den zweiten schaltest Du dann auf exposed für die Benutzer.
Renardo
Hallo montviso, hast du schon
am 17.01.2014 - 15:24 Uhr
Hallo montviso,
hast du schon viel Inhalt auf der Seite? Falls nicht würde ich die Werte aus einem Field ziehen, entweder als Ganzzahl (Abfrage in Views dann mit gruppierten Filtern möglich) oder gleich als Select Feld von bis eintragen.
Eventuell hilft dir dieses Modul oder dieser Thread weiter (ungetestet):
https://drupal.org/project/views_fields_combine
https://groups.drupal.org/node/284538
Grüße Jenna
Hallo Renardo, ich stehe wohl
am 17.01.2014 - 15:33 Uhr
Hallo Renardo,
ich stehe wohl wirklich auf dem Schlauch.
Wie kann ich es machen, daß der erste (also für den User nicht sichtbare) Filter den gleichen Wert hat, wie der, der exposed ist?
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Filtern nach Wert größer Feld 1 und kleiner Feld 2
am 17.01.2014 - 16:26 Uhr
Irgendetwas ist mir an Deinem Problem nicht klar. Der zweite Filter, der ja exposed sein soll, ermöglicht dem Nutzer selbstverständlich die Eingabe eines beliebigen Wertes.
Renardo
In den Einstellungen zu
am 17.01.2014 - 17:09 Uhr
In den Einstellungen zu deinem Exposed Filter veränderst du den Filter identifier(versteckt sich hinter more) so, das er identisch ist, wie der der nicht exposed ist. Wenn du nicht genau weißt, wie du ihn benennen musst, stellst du beide Filter auf exposed und trägst bei beiden das selbe ein. Beispiel height.
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
@Renardo, mit ist schon klar,
am 18.01.2014 - 20:28 Uhr
@Renardo, mit ist schon klar, daß der User im Exposed Feld einen beliebigen Wert eingeben kann.
Angenommen, er gibt hier den Wert ein, der dann >= sein soll zu Feld 1 (Höhe von).
Wie bekomme ich den gleichen dynamischen Wert des Users in den zweiten Filter (nicht exposed), der den Wert dann auf <= Feld 2 (Höhe bis) abgleicht?
@Tobias, ich habe das eben versucht mit zwei exposed Feldern mit gleichem Namen in der Hoffnung, daß die View daraus eine Abfrage in dieser Form "identifier-value >= 'Feld 1' AND identifier-value <= Feld 2 generiert.
Da kommt eine Meldung: "This identifier is used by another handler", was ja auch irgendwie verständlich ist.
@jenna
Das Modul für combined Fields habe ich für andere Zwecke bereits im Einsatz:
Das bringt für meine Zwecke allerdings nichts, weil ich die kombinierte Suche auf die beiden Felder nur mit gleichem Operator durchführen kann. Ich brauche aber einmal <= und einmal >= .
Oder ich habe eine Möglichkeit übersehen.
Das Modul Views PHP verwende ich bereits für verschiedene Felder und ich vergesse immer wieder, daß man es auch für Filter einsetzen kann.
Ich habe mir diese Beispiele angesehen: https://drupal.org/node/763980
Was mir nicht klar ist: Wie man den Wert aus dem Exposed Filter im Code ansprechen kann, um den Select zu bauen, der die Node-ID's ermittelt.
Ich überlege, ob ich beide Felder als exposed View anlegen und mit JQuery das eine auf unsichtbar setze und beim Absenden des Formulars den Wert aus dem sichtbaren auch in das unsichtbare Feld übertrage.
Wäre so einfach...aber eben auch unelegant.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
View Filter >=Feld1 und <= Feld2
am 19.01.2014 - 09:03 Uhr
Versuch es doch mal mit dem Modul Computed Fields. Damit berechnest Du die Subtraktion Deiner beiden Felder und kannst dann dieses berechnete Feld für den Filter Deiner View verwenden.
Falls Du dieses Modul noch nicht kennst, beachte, dass der Wert eines berechneten Feldes immer erst nach der Speicherung eines Nodes in die Datenbank gelangt.
Renardo
Nein, das Modul Computed
am 19.01.2014 - 15:38 Uhr
Nein, das Modul Computed Fields habe ich noch nicht getestet.
Es wäre sicher kein Problem die genannte Berechnung (Substratktion der Felder) mit dem PHP Modul von Feeds Tampers beim Import der Pflanzen via CSV durchführen zu lassen.
Ich werde das mal im Hinterkopf behalten, möchte hier aber nicht noch ein Feld einbauen.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Ich habe die Anforderung nun
am 19.01.2014 - 15:39 Uhr
Ich habe die Anforderung nun via JQuery gelöst.
1. Schritt: In der View zwei Exposed Filter angelegt:
Filter 1: "Höhe von" mit Operator "is less than or equal"
Der Name für die Oberfläche lautet "Höhe in cm".
Filter 2 "Höhe bis" mit Operator "is grater than or equal"
2. Schritt: Mit CSS das zweite Formularfeld auf display:none gesetzt.
3. Schritt:
In der bereits vorhandenen JS-Datei folgende Zeilen eingebaut:
jQuery(document).ready(function($){
$('#id-des-formulars').submit(function(e) {
$('#id-des-ausgeblendeten-filters').val($('#id-des-eingeblendeten-filters').val());
});
})
Ich setze den Thread auf gelöst.
Wenn jemand noch eine Idee hat, die noch nicht genannt war, dann interessiert mich das sicher.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Ok, dann muss man die
am 20.01.2014 - 13:23 Uhr
Ok, dann muss man die validation umgehen, einfach bei Filter1 nach schauen, was drin steht, dann wieder "exposed" deaktivieren und bei Filter2 den Wert eintragen. Also bei mir ging das. ;-)
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Tobias, Danke für den
am 20.01.2014 - 14:05 Uhr
Tobias, Danke für den Tipp...ich bin ein großer Freund solcher Trick-17-Lösungen. ;-)
Nun bin ich ganz zufrieden mit meiner JQuery-Lösung.
Nachdem auf der Webseite sowieso JS eingeschaltet sein muß, ist das auch zu rechtfertigen.
Aber ein andermal bin ich sicher noch froh über die Lösung mit gleichem Identifier.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de