Contao-Camp 2024
Ergebnis 1 bis 8 von 8

Thema: Aktuelle und Vergangene Events (current & bygone) getrennt ausgeben lassen

  1. #1
    Contao-Nutzer Avatar von tuxracer
    Registriert seit
    14.04.2011.
    Ort
    Essen
    Beiträge
    101

    Standard Aktuelle und Vergangene Events (current & bygone) getrennt ausgeben lassen

    Hallo zusammen,

    ich habe monatlich laufende Aktionsangebote auf der Webseite (erster bis letzter Tag des Monats) eines Kunden. Dachte also, das kann man mit Events lösen. In der Seitenausgabe (HTML-Quelltext) sehe ich auch, das Contao eine Unterscheidung zwischen abgelaufenen und noch laufenden Events macht (CSS Klassen "current" und "bygone"). Ich möchte beides sauber in der Ausgabe trennen, auf Grund der Länge der "Events" geht das aber mit den im Event-Modul möglichen Einstellungen scheinbar nicht. Meine Konfiguration auf der Seite:

    1. Modul: Eventliste, Anzeigeformat "zukünftige Events des laufenden Monats", Option "verkürzte Darstellung" ist gewählt
    Ausgabe: Nur die Aktion des aktuellen Monats wird angezeigt, Option "verkürzte Darstellung" ist gewählt

    2. Modul (Archiv): Eventlist, Anzeigeformat "alle vergangenen Events anzeigen"
    Ausgabe: Alle Aktionen der letzten Monate ABER auch die des aktuellen Monats als erstes, da ja Teile (aka. Tage) der Aktion bereits in der Vergangenheit liegen.

    Das ist natürlich für den Leser verwirrend. Hat jemand eine Idee die Ausgabe sauber zu trennen? Ausbelden der "current" CSS Classe in Modul 2 finde ich nicht sehr sauber.

    Viele Grüße, Marcel

  2. #2
    Contao-Nutzer Avatar von tuxracer
    Registriert seit
    14.04.2011.
    Ort
    Essen
    Beiträge
    101

    Standard

    Habe eine Möglichkeit gefunden, indem ich dem Template von Modul 2 eine if-Abfrage hinzugefügt habe:

    Am Anfang:
    Code:
    <?php if (($this->endDate) < time()): ?>
    Code des Standard Templates

    Code:
    <?php endif; ?>
    Nur: gehört so eine Abfrage ins Template oder sollte man das nicht besser als Option in der Logik eines Moduls erweitern (ich bin kein Programmierer), also einen Feature-Request an Leo einreichen?
    Eure Meinung?

    Viele Grüße, Marcel

  3. #3
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ja, normalerweise gehört die Logik ins Modul. Aber in 3.5 werden keine Feature mehr eingebaut. Schau nochmal, ob da nicht doch eine Einstellung dabei ist, welche auf deine Situation passt. Oder schau nach Kalender-Erweiterungen, die da vielleicht noch mehr Optionen anbieten. Aber deine Lösung ist auch nicht schlecht, wenn du da nicht gerade hunderte von Events mit rausfilterst.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  4. #4
    Contao-Fan Avatar von jenda
    Registriert seit
    20.06.2009.
    Ort
    Berlin
    Beiträge
    484

    Standard Contao 4.x

    Hallo,

    ich habe auch eine ähnlich Sache mit dem Template event_full, die ich für die Detailseite benutze. Ich benutze Contao 4.6.x.

    Auf dieser Ebene möchte ich etwas aber ausschließen, sobald das Event vergangen ist. Mit welcher if-Abfrage könnte ich es lösen? Das ist hier funktioniert leider nicht

    PHP-Code:
    <?php if (($this->endDate) < time()): ?> code <?php endif; ?>
    Weiß jemand, was ich genau verwenden muss? Danke.

  5. #5
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du hast vermutlich einen sich wiederholenden Event. Sieh dir zuerst mal die Variablen an - siehe hier https://de.contaowiki.org/Template_V...eigen#Contao_4

    Ich vermute, dass in ->endDate das Enddatum des ersten Events abgelegt ist. Evtl. Ist das Enddatum des aktuellen Events in der Variablen ->end abgelegt.

    Das wäre dann folgender Code ganz oben im Template.
    PHP-Code:
    <?php
    if ($this->end time())
    {
      return;
    }
    ?>
    Geändert von Andreas (23.01.2019 um 20:55 Uhr)
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  6. #6
    Contao-Fan Avatar von jenda
    Registriert seit
    20.06.2009.
    Ort
    Berlin
    Beiträge
    484

    Standard

    Danke, Andreas. Du hast mir geholfen.

    Eine andere Frage, die für alle PHP-Kenner sicherlich sehr einfach ist, habe ich noch. Wenn ich nun 5 Stunden vorm Beginn einer Veranstaltung etwas ausblenden möchte, muss ich erstmal dafür die Uhrzeit festlegen und dann diese statt time() einsetzen. Ist das korrekt?

  7. #7
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du willst nicht JETZT als Ablauffrist setzen, sondern JETZT minus 5 Stunden? Dann muss du das von time() abziehen. time() ist in Sekunden http://de1.php.net/manual/de/function.time.php

    PHP-Code:
     <?php
    if ($this->end time() - 60 60 5)
    {
      return;
    }
    ?>
    Geändert von Andreas (28.01.2019 um 23:37 Uhr)
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  8. #8
    Contao-Fan Avatar von jenda
    Registriert seit
    20.06.2009.
    Ort
    Berlin
    Beiträge
    484

    Standard

    Danke dir, Andreas.

    Sorry, eigentlich hast du recht, es soll 5 Stunden vor Veranstaltungsbeginn für immer ausgeblendet sein, daher muss ich wahrscheinlich folgende Anweisung nehmen?

    PHP-Code:
     <?php
    if ($this->begin $this->begin 60 60 5)
    #if ($this->begin <  $this->begin - 18000)
    {
      return;
    }
    ?>

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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