Hi, I recently upgraded to 2.x branch, we noticed that event data was no longer being loaded, I chased the problem down to the event_nodeapi() hook on load:

<?php
$object = db_fetch_object(db_query('SELECT e.event_start, e.event_end, e.timezone, tz.offset AS offset, tz.offset_dst AS offset_dst, tz.dst_region, e.event_start + INTERVAL offset HOUR_SECOND AS event_start_offset, e.event_end + INTERVAL offset HOUR_SECOND AS event_end_offset, e.event_start + INTERVAL offset_dst HOUR_SECOND AS event_start_offset_dst, e.event_end + INTERVAL offset_dst HOUR_SECOND AS event_end_offset_dst, e.event_start + INTERVAL %d SECOND AS event_start_offset_user, e.event_end + INTERVAL %d SECOND AS event_end_offset_user, e.event_start + INTERVAL %d SECOND AS event_start_offset_site, e.event_end + INTERVAL %d SECOND AS event_end_offset_site, tz.name as timezone_name FROM {event} e INNER JOIN {event_timezones} tz ON tz.timezone = e.timezone WHERE nid = %d', $user->timezone, $user->timezone, variable_get('date_default_timezone', 0), variable_get('date_default_timezone', 0), $node->nid));
?>

There is an INNER JOIN to event_timestamp, but the timestamps start at 1 and the user's timestamp defaults to 0, therefore no event data is loaded, but the user was allowed to create the event without a timestamp.

I don't know what the proper way to handle this is, should there be a warning on create, force the user to set their timezone, or use autotimezone module, or modify this INNER JOIN to a LEFT JOIN?

Thank you for your time and help

Comments

bajakan’s picture

inner join to event_timezone lol not timestamp sorry for confusion.

bajakan’s picture

Status: Active » Closed (fixed)

um... yeah... its called setting the sitewide timezone, of course those defaults could default to 1, but at any rate, setting the sitewide timezone fixes this. thx.