Wenn ich den Quellcode in WidgetEventchooser.php richtig deute, dann werden nur Events zur Auswahl angeboten, die ab heute starten
und die innerhalb eines Jahres zu Ende gehenCode:(startTime >= $intStartwobei $intEnd = $intStart + 360*3600*24 ist.Code:AND endTime <= $intEnd)
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.
Der schnellste Weg zu einer konfigurierbaren Lösung wäre eine Variantenauswahl in der localconfig.php und die Anzahl Tage.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();
Oder gibt es schon einen anderen Weg, der sich mir noch nicht erschlossen hat?
Gruß Andreas


