Drupal: date_browser und views
09.04.2009Wenn 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 Zeilen 414 und 416 (s.o.) sind fett hervorgehoben, die notwendigen Änderungen kursiv.// 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)); }