Events auswählen - Eventchooser

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Ynda
    Contao-Nutzer
    • 02.02.2012
    • 35

    #1

    Events auswählen - Eventchooser

    Wenn ich den Quellcode in WidgetEventchooser.php richtig deute, dann werden nur Events zur Auswahl angeboten, die ab heute starten
    Code:
    (startTime >= $intStart
    und die innerhalb eines Jahres zu Ende gehen
    Code:
    AND endTime <= $intEnd)
    wobei $intEnd = $intStart + 360*3600*24 ist.

    Diese Logik hat sicherlich ihre Berechtigung, aber ich versuche gerade Messetermine per Newsletter zu kommunizieren und stehe vor dem Problem, dass laufende Messen nicht mehr ausgewählt werden können. Das selbe Problem betrifft Hausmessen, die länger als ein Jahr laufen.

    Dreh- und Angelpunkt dieser Problematik sind die hart codierte Rahmenbedingungen in getAllEvents()
    Habe mir selbst Abhilfe geschaffen indem ich einen update-unsicheren Hack reingeschieben habe. Je nach Kunde wähle ich für $inX 1,2 oder 3.
    PHP-Code:
        protected function getAllEvents()
        {
            $intStart = time();
            $intDays = 360*3600*24;
            $intEnd = $intStart + $intDays;
    
            $arrVariante[1] = "(startTime >= $intStart AND endTime <= $intEnd)"; // Start ab heute und Ende innerhalb ??? Tage (aktueller Standard)
            $arrVariante[2] = "(startTime >= $intStart )";    // Start ab heute
            $arrVariante[3] = "(endTime > $intEnd)";  // Ende liegt ??? Tage in der Zukunft
            $intX = 3;
            
            // Get events of the current period
            $objEvents = $this->Database->prepare("SELECT e.startTime, e.endTime, e.id,e.title, e.recurring, e.recurrences, e.repeatEach, c.title AS calendar
                                                   FROM tl_calendar_events AS e
                                                   LEFT JOIN tl_calendar AS c ON (e.pid = c.id)
                                                   WHERE
                                                           published='1' ". // only published events
                                                       "AND ( " .
                                                            $arrVariante[$intX]    . // all events in the selected period
                                                           "OR recurring='1' AND (". // all recurring events which are not ending bevore intStart
                                                                "recurrences=0 OR repeatEnd>=$intStart
                                                            )
                                                        )")
                                        ->execute(); 
    
    Der schnellste Weg zu einer konfigurierbaren Lösung wäre eine Variantenauswahl in der localconfig.php und die Anzahl Tage.
    Oder gibt es schon einen anderen Weg, der sich mir noch nicht erschlossen hat?

    Gruß Andreas
  • Ynda
    Contao-Nutzer
    • 02.02.2012
    • 35

    #2
    Leider immer noch nicht!

    Auch in der neuesten Version (Avisota 1.6.2 b9) werden noch laufende Termine nicht zur Auswahl angeboten.
    Ist es so abwegig, dass man auch Termine kommunizieren möchte die schon begonnen haben und noch nicht beendet sind?

    Gruß Andy

    Kommentar

    • tril
      Contao-Urgestein
      • 07.01.2010
      • 2939

      #3
      Dann bitte ich dich, ein Ticket dazu auf zu machen, ich kümmer mich dann ab übernächste Woche darum
      GitHub is where people build software. More than 225 million people use GitHub to discover, fork, and contribute to over 800 million projects.

      Kommentar

      • Ynda
        Contao-Nutzer
        • 02.02.2012
        • 35

        #4
        Ticket erstellt.

        Kommentar

        Lädt...