Ergebnis 1 bis 10 von 10

Thema: Frontend-Ausgabe nach Jahreszahl filtern?

  1. #1
    Contao-Nutzer Avatar von Florian83
    Registriert seit
    23.06.2009.
    Beiträge
    16

    Standard Frontend-Ausgabe nach Jahreszahl filtern?

    Ich habe mit dem catalog/ext_catalog-Modul Felder angelegt, di ich in einer Tabelle ausgebe. Sowohl die Eingabe, als auch die Ausgabe funktionieren mit der Anpassung der Templatedateien gut.

    An einer Sache hänge ich momentan. Ich habe ein Datumsfeld mit dem Format "dd.mm.yyyy". Ich möchte auf der Ausgabeseite, also meiner Tabelle im Frontend, nur die Inhalte des aktuellen Jahres ausgeben. Die vorigen Jahre sollen als Untermenüpunkte oder Dropdownliste zur Verfügung gestellt werden.

    Wie bekomme ich dies nun hin? Mit den Conditions stehe ich auf dem Schlauch, da weiß ich nicht wie und müsste auch für jede Jahreszahl ein eigenes Modul anlegen, da wäre mit der Zeit unübersichtlich.

    Geht das irgendwie über die url?
    Wie muss ich mit dem Filter umgehen, dass es funktioniert?

    Vielen Dank für eure Hilfe! DANKE!

  2. #2
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo Florian83,
    das ist eine Gute Frage. Da bewege ich mich jetzt auch auf sehr unsicherem Terain für mich.
    Aber versuchen können wir das ja mal zusammen.

    Hiermit müsstest du das aktuelle Jahr bekommen (in einem Condition):
    Code:
    (date("Y",deinedatumsvariable))={{date::Y}}
    Damit müsstest du also die Items aus dem aktuellen Jahr bekommen...

    dann brauchst du noch eine Liste für die vergangenen Jahre...
    da dann eher anders:
    Code:
    (date("Y",deinedatumsvariable))<{{date::Y}}
    Damit bekommst du dann hoffentlich erst mal alle vergangenen Jahre.

    Jetzt kommt dann das Filter Template ins Spiel:
    Bei Auswahl von dem Jahr sollte das so eingestellt sein, das es auf die 2. Liste springt.
    Und du musst einen eigenen Filter basteln, indem du die Jahre aus der Tabelle liest und die als was du das auch immer haben möchtest ausgibst (z.B. Liste).

    Hoffenltich hilft dir das schon mal weiter, bis jemand hier vorbei schaut, der wirklich Ahnung hat von SQL und PHP ;-)

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  3. #3
    Contao-Nutzer Avatar von Florian83
    Registriert seit
    23.06.2009.
    Beiträge
    16

    Standard

    Zitat Zitat von MacKP Beitrag anzeigen
    Hiermit müsstest du das aktuelle Jahr bekommen (in einem Condition):
    Code:
    (date("Y",deinedatumsvariable))={{date::Y}}
    Damit müsstest du also die Items aus dem aktuellen Jahr bekommen...

    dann brauchst du noch eine Liste für die vergangenen Jahre...
    da dann eher anders:
    Code:
    (date("Y",deinedatumsvariable))<{{date::Y}}
    Damit bekommst du dann hoffentlich erst mal alle vergangenen Jahre.
    Hallo MacKP,

    danke für die erste Antwort. Es funktioniert aber leider nicht. Ich habe mit den Conditions nun folgenden Erfolg erzielt:

    Code:
    meinedatumsvariable>=datum_im_raw_format_angeben
    Das Datum gebe ich als raw Daten an. Allerdings das komplette Datum des 01.01.2009, also nicht als Jahreszahl. Das ist ja nicht mein gewünschtes Ergebnis. Vor allem werden dann auch die Daten aus dem kommenden Jahr 2010 angezeigt.

    Jetzt kommt dann das Filter Template ins Spiel:
    Bei Auswahl von dem Jahr sollte das so eingestellt sein, das es auf die 2. Liste springt.
    Und du musst einen eigenen Filter basteln, indem du die Jahre aus der Tabelle liest und die als was du das auch immer haben möchtest ausgibst (z.B. Liste).
    Klingt leider so einfach, ist es für mich aber nicht. Also wenn noch jemand eine Idee hat, bitte melden.

    Danke

  4. #4
    Contao-Nutzer Avatar von Florian83
    Registriert seit
    23.06.2009.
    Beiträge
    16

    Standard

    Also als erste Lösung habe ich mir helfen können. Hierfür muss ich zwar für jedes Jahr ein eigenes Modul anlegen, aber es funktioniert.

    Und zwar verwende ich in den Conditions mit der Abfrage "BETWEEN ... AND ...". Ich sage, dass die Einträge zwischen zwei Tagen angezeigt werden sollen. Hierfür wähle ich z.B. den 01.01.2009 und 31.12.2009.
    Das wichtige dabei ist, dass das Datum im Unix Timestamp eingegeben werden muss. Hierfür gibt es aber sogenannte Unix Timestamp Converter (einfach in die bekannten Suchmaschinen eingeben).

    Darauf gestossen bin ich, als ich in der Datenbank gesehen habe, dass das Datum als 10-stelliger Int gespeichert wird und nicht als date. Eine Umkonvertierung des Int zum Datumsformat funktioniert in den Conditions aber nicht.

    Bei mit sieht es dann z.B. so aus:

    Code:
    meinedatumsvariable Between 1230764400 AND 1262214000
    Nicht perfekt, funktioniert aber.

    Wenn noch jemand eine bessere Idee hat, bitte einfach posten. Danke.

  5. #5
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo Florian83,
    ich seh da im Moment auch keine wirklich schöne Lösung für dich.
    Das Problem ist, das in der DB die Werte als Timestamp drinn sind.
    Eventuell könnte man da im Template selber noch was machen, nachdem man das umgewandelt hat.
    Oder du machst das mit Taxonomy, indem du da einfach noch mal ne Liste im den Jahreszahlen machst. Das wäre am einfachsten, aber durchaus doppelte Eingabe.

    Wirklich schicke Lösungen habe ich da also nicht wirklich parat für dich.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  6. #6
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    Dadurch dass es timestamps sind, und diese auch noch zu allem Ueberfluss als char fields abgespeichert werden muss man leider immer ein wenig basteln.

    Evtl. klappt folgendes (habe ich nicht getestet):
    Code:
    meinedatumsvariable BETWEEN UNIX_TIMESTAMP('{{date::Y}}-01-01') AND UNIX_TIMESTAMP('{{date::Y}}-12-31')
    Gruss
    Chris
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  7. #7
    Contao-Nutzer Avatar von Florian83
    Registriert seit
    23.06.2009.
    Beiträge
    16

    Standard

    Also vielen Dank, ich werde es dann bei meiner Lösung belassen. So schlimm ist es ja auch nicht einmal im Jahr ein Modul anzulegen.

    Gruß

  8. #8
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo Florian83,
    könntest du trotzdem mal kurz den Versuch von Xtra testen?
    Ich glaub wir haben sonst keinen der so ein Setting wie du hat im Moment. Und wäre ja ganz praktisch das zu wissen. Auf Grundlage dessen könnte man eventuell ein paar weitere Ideen entwickeln.

    Wäre super wenn du das machen könntest.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  9. #9
    Contao-Nutzer Avatar von Florian83
    Registriert seit
    23.06.2009.
    Beiträge
    16

    Standard

    Ok, gerne habe ich den Vorschlag getestet. Und das ganze auch mit Erfolg!

    Es ist sowohl
    Code:
    meinedatumsvariable BETWEEN UNIX_TIMESTAMP('{{date::Y}}-01-01') AND UNIX_TIMESTAMP('{{date::Y}}-12-31')
    als auch
    Code:
    meinedatumsvariable BETWEEN UNIX_TIMESTAMP('2008-01-01') AND UNIX_TIMESTAMP('2008-12-31')
    möglich, um mit älteren Jahreszahlen zu arbeiten. {{date::Y}} gibt ja nicht anderes als die aktuelle Jahreszahl aus.

    Da es sauber aussieht und einfach funktioniert werde ich natürlich diese Lösung nutzen.

    Vielen Dank!

  10. #10
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo Florian83,
    vielen Dank fürs testen ;-)

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Nach über 100 Kategorien Filtern?
    Von cybernaut im Forum isotope
    Antworten: 2
    Letzter Beitrag: 25.02.2011, 10:03
  2. Antworten: 1
    Letzter Beitrag: 21.09.2010, 13:16
  3. Events nach Jahr filtern
    Von mandrael im Forum Nachrichten/Events/FAQ
    Antworten: 1
    Letzter Beitrag: 13.07.2010, 00:04
  4. Events nach Titel filtern?
    Von andi-bar im Forum Nachrichten/Events/FAQ
    Antworten: 2
    Letzter Beitrag: 29.06.2010, 09:22

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •