function planner_process_event($event) { $intervals_per_day = $this->bo->prefs['calendar']['planner_intervals_per_day']; $interval = $this->planner_intervals[$intervals_per_day]; $last_cell = $intervals_per_day * $this->planner_days - 1; $rows =& $this->planner_rows; // caluculate start and end of event // $event_start = intval(date('Ymd', mktime(0, 0, 0, $event['start']['month'], $event['start']['mday'], $event['start']['year']))); $event_end = intval(date('Ymd', mktime(0, 0, 0, $event['end']['month'], $event['end']['mday'], $event['end']['year']))); // calculate first cell of event within observed interval // if ($event_start >= $this->planner_firstday) { $days_between = phpgwapi_datetime::days_between($this->bo->month, 1, $this->bo->year, $event['start']['month'], $event['start']['mday'], $event['start']['year']); $start_cell = $intervals_per_day * $days_between + $interval[$event['start']['hour']]; } else { $start_cell = 0; } // calculate last cell of event within observed interval // if ($event_end <= $this->planner_lastday) { $days_between = phpgwapi_datetime::days_between($this->bo->month, 1, $this->bo->year, $event['end']['month'], $event['end']['mday'], $event['end']['year']); $end_cell = $intervals_per_day * $days_between + $interval[$event['end']['hour']]; if ($end_cell == $start_cell && $end_cell < $last_cell) { $end_cell++; // min. width 1 interval } } else { $end_cell = $last_cell; } // get the categories associated with event // if ($c = $event['category']) { list($cat) = $this->planner_category($event['category']); if ($cat['parent']) { list($pcat) = $this->planner_category($c = $cat['parent']); } else { $pcat = $cat; } } else { $cat = $pcat = array('name' => lang('none')); } // add the event to it`s associated row(s) // if ($this->bo->sortby == 'category') { // event needs to show up in it`s category`s row // $this->planner_update_row($c, $pcat['name'], $event, $cat, $start_cell, $end_cell); } elseif ($this->bo->sortby == 'user') { // event needs to show up in rows of all participants that are also owners // reset($this->planner_group_members); while (list($user_name, $id) = each($this->planner_group_members)) { $status = isset($event['participants'][$id]) ? $event['participants'][$id] : ''; if ($status && $status != 'R') { $this->planner_update_row($user_name, $user_name, $event, $cat, $start_cell, $end_cell); } } } }