Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

Wie filtert man mit Views eine Liste von Nodes nach Monaten ?

Eingetragen von dknopf (80)
am 14.01.2012 - 10:27 Uhr in
  • Views
  • Drupal 7.x

Hallo ihr Lieben,

genauere Problembeschreibung:
Es gibt einen Event, z.b. Heiligabend 2011, der findet natürlich am 24.12.2011 statt.
Dieser Event wird in einer "Eventliste" (bestehend aus Event-Nodes) mit dem Datum 24.12.2011 eingetragen (nicht Post-Date sondern ein separates Datum bei Event).

Nun möchte ich die Eventliste nach diesem Event-Datum mit Views filtern.
Das ganze soll nicht tageweise passieren, sondern monatsweise.

Also ich hätte gerne eine Select-Box

z.B. mit
Januar 2011
Februar 2011
.....
Dezember 2011

und wenn ich Dezember 2011 auswähle, dann sehe ich den Eintrag von Heiligabend in der Eventliste und die anderen Events, die es noch im Dezember gab.

In der Select-Box sollten nur die Monate aufauchen, in denen es überhaupt Events gibt.

Genau an diesem Problem arbeite ich zur Zeit und komme nicht weiter :-(

Folgendermaßen bin ich an die Sache herangegangen.
ich habe ein Computed-Field hergenommen und dort immer aus dem Event-Datum den Monat und das Jahr herausgenommen und in das Computed Field geschrieben.
Aus dem 24.12.2011 wurde dann automatisch Dezember 2011.

Dann wollte ich mit Exposed Filters auf dieses Computed-Field die Eventliste filtern.
Da geht auch ganz problemlos, nur wird mir dieser Exposed-Filter immer als Textbox dargestellt und in die müßte ich dann "Dezember 2011" eingeben. Aber das ist natürlich eine unsinnige Lösung.
Wenn die Eingabe für den Filter an dieser Stelle keine Textbox wäre, sondern eine Select-Box, dann hätte ich genau das, was ich gerne möchte, aber das geht so wohl nicht.

Ein Exposed Filter direkt auf das Event-Datum hat leider immer mindestens zwei Select-Boxen (Jahr und Monat), und außerdem ist des nicht auf die Monate beschränkt, wo es überhaupt Events gibt.
Also das ist auch keine gute Lösung.

Wie kann man denn das machen, das Problem scheint mir nicht besonders exotisch zu sein, ich denke eher, ich mache da grundsätzlich einen Denkfehler.

Update: ich habe auch schon mit Better exposed Filter experimentiert, aber leider brachte dieses Zusatzmodul auch nicht den gewünschten Erfolg.
Man müßte so einen Auswahlfilter (Select-Box) so mit Werten füllen können, wie das bei einer Eingabe-Select-Box auch geht, also z.B. direkt Werte aus einer MySQL-Tabelle auslesen und diese dann in einer Select-Box darstellen.
Ich komme da echt nicht weiter.... :-(

Vielleicht weiß ja jemand Rat :-)

lieben Gruß
Daniela

‹ [GELÖST] Letzte 6 Artikel (ohne den neuesten) [gelöst] View listet Felder eines best. Inhaltstyps auf. Einige Nodes dieses Inhaltstyps sollen aber nicht gelistet werden. ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hat denn keiner eine

Eingetragen von dknopf (80)
am 14.01.2012 - 21:09 Uhr

Hat denn keiner eine Idee...
es brennt mir etwas unter den Nägeln :-)

lieben Gruß
Daniela

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Daniela,du bist mit

Eingetragen von torfnase (1525)
am 15.01.2012 - 02:05 Uhr

Hallo Daniela,
du bist mit deiner Vorgehensweise genau auf dem richtigen Weg....

Du mußt nur, wie du schon selbst beschrieben hast, aus dem Textfeld eine Select-Box machen und das geht z.B. so:

Du ergänzt die Funktion XXXXXThemenameXXXX_form_alter(&$form, &$form_state, $form_id) in der template.php (oder halt neu einfügen, wenn es die Funktion noch nicht gibt)

<?php

 
if ($form_id == 'views_exposed_form') {
   
$view = &$form_state['view'];
   
$display = &$form_state['display'];
    if (
$view->name == 'eventliste' && $display->id == 'page')
        {
       
$form['field_monat_jahr_value']['#type']="select";
                     
$form['field_monat_jahr_value']['#size']=NULL;
                     
$form['field_monat_jahr_value']['#defalut_value']="";
       
$form['field_monat_jahr_value']['#options']=$options;
        }
  }


?>

Voraussetzungen:
Deine View heißt eventliste und ist die ein page Display und dein Computed-Field heißt : field_monat_jahr

Dann brauchst du nur noch bei $options die einzelnen Einträge festlegen, die in der Select-Box auftauchen sollen.

@$options
nun einfach die Einträge, die du in dem Computed-Field stehen hast, aus der DB auslesen und dort einfügen.

noch ein Tipp:
ich würde das Computed-Field noch etwas anders füllen, als du es oben vorgeschlagen hast, nämlich:
aus dem Datum für Weihnachten würde ich z.B.
2011-12-24T00:00:00&Dezember 2011 machen.
Dann hast du weiterhin die Möglichkeit, bei Auslesen der Werte aus der DB diese auch zu ordnen, z.B. aufsteigend, was bei deiner Konstellation ja sinnvoll wäre, es ist ja im Wesentlichen ein Datum.
Bei der Select-Box hast du ja immer die Möglichkeit, zwei Werte einzutragen, einmal einen Value, der den bei der SQL-Abfrage deiner View tatsächlich verglichen wird und einem ein Label, was in der Select-Box angezeigt wird. Mit einem "eindeutigen" Trenner (Delimiter) kannst du dann den ausgelesenen Eintrag einfach in zwei Teile splitten und dann den zweiten Teil, also in dem oberen Fall: Dezember 2011 als Label und den gesamten ersten Teil "2011-12-24T00:00:00&Dezember 2011" als Value für die SQL-Abfrage deiner View verwenden.

Das müßte eigentlich ganz gut funktionieren.

liebe Grüße
Berthold

  • Anmelden oder Registrieren um Kommentare zu schreiben

vielen lieben Dank für deine

Eingetragen von dknopf (80)
am 16.01.2012 - 02:03 Uhr

vielen lieben Dank für deine Mühe Berthold.
Ich habe es noch nicht alles verstanden, aber ich werde diesen Weg auf jeden Fall ausprobieren.
Das ist genau die Richtung, die ich auch einschlagen wollte, aber mit dem Abändern des Textfeldes in eine Selectbox, tja, da habe ich gedacht, dass das gar nicht geht.

Auch der Tipp mit dem Sortieren des Computed-Fields ist super. Ich hatte auch schon darüber nachgedacht, wie ich die Einträge wohl sortieren könnte, aber das war erst Punkt 134 auf meiner Problemliste.

Also nochmals vielen vielen Dank. Du hast mir schon so oft geholfen.
So langsam habe ich das Gefühlt, ich schulde dir was :-)

lieben Gruß
Daniela

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Ветошь для протирки оборудования
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 5 Tagen
  • Hey danke
    vor 2 Wochen 5 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 4 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 4 Wochen 1 Tag
  • In der entsprechenden View
    vor 4 Wochen 1 Tag
  • Dazu müsstest Du vermutlich
    vor 4 Wochen 1 Tag
  • gelöst
    vor 6 Wochen 5 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250234
Registrierte User: 20455

Neue User:

  • JoMek
  • Znogsnernoimb
  • ByteScrapers

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 23 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association