Wenn bei Terminen für den Kalender die Endzeit eines Eintrags optional ist, kann der sonst praktische Drupal-Kalender solche Fehlermeldungen anzeigen:
- warning: date_timezone_set() expects parameter 1 to be DateTime, null given in [...]/modules/calendar/includes/calendar.inc on line 414. - warning: date_format() expects parameter 1 to be DateTime, null given in [...]/modules/calendar/includes/calendar.inc on line 416.
Da die Drupal-Funktion date_make_date, die normalerweise aus verschiedenen Formaten eine einheitliche Form der Zeitangabe generiert, bei nicht erkennbaren Eingaben NULL liefert, NULL jedoch für die date_*-Funktionen von PHP kein valider Parameter ist, muss man den Drupal-Source etwas anpassen. In der Version 6.10 ist das die Datei modules/calendar/includes/calendar.inc. Die korrekten Zeilen sind
[php]// End date
if ($values[1] == "") {
$values[1] = $values[0];
}
$date = date_make_date($values[1], $db_tz, $field[‘sql_type’]);
if ($db_tz != $to_zone) {
date_timezone_set($date, timezone_open($to_zone));
}[/php]