static function constructEventsArray($options = array())
{
global $CFG_GLPI;
$param['start'] = '';
$param['end'] = '';
$param['display_done_events'] = true;
if (is_array($options) && count($options)) {
foreach ($options as $key => $val) {
$param[$key] = $val;
}
}
$param['begin'] = date("Y-m-d H:i:s", strtotime($param['start']));
$param['end'] = date("Y-m-d H:i:s", strtotime($param['end']));
$raw_events = array();
foreach ($CFG_GLPI['planning_types'] as $planning_type) {
if (!$planning_type::canView()) {
continue;
}
if ($_SESSION['glpi_plannings']['filters'][$planning_type]['display']) {
$event_type_color = $_SESSION['glpi_plannings']['filters'][$planning_type]['color'];
foreach ($_SESSION['glpi_plannings']['plannings'] as $actor => $actor_params) {
$actor_params['event_type_color'] = $event_type_color;
$actor_params['planning_type'] = $planning_type;
self::constructEventsArraySingleLine($actor, array_merge($param, $actor_params), $raw_events);
}
}
}
// construct events (in fullcalendar format)
$events = array();
foreach ($raw_events as $event) {
$users_id = isset($event['users_id_tech']) && !empty($event['users_id_tech']) ? $event['users_id_tech'] : $event['users_id'];
$content = Planning::displayPlanningItem($event, $users_id, 'in', false);
$tooltip = Planning::displayPlanningItem($event, $users_id, 'in', true);
$begin = date('c', strtotime($event['begin']));
$end = date('c', strtotime($event['end']));
// retreive all day events
if (strpos($event['begin'], "00:00:00") != false && (strtotime($event['end']) - strtotime($event['begin'])) % DAY_TIMESTAMP == 0) {
$begin = date('Y-m-d', strtotime($event['begin']));
$end = date('Y-m-d', strtotime($event['end']));
}
$index_color = array_search("user_{$users_id}", array_keys($_SESSION['glpi_plannings']));
$events[] = array('title' => $event['name'], 'content' => $content, 'tooltip' => $tooltip, 'start' => $begin, 'end' => $end, 'editable' => isset($event['editable']) ? $event['editable'] : false, 'color' => empty($event['color']) ? Planning::$palette_bg[$index_color] : $event['color'], 'borderColor' => empty($event['event_type_color']) ? self::getPaletteColor('ev', $event['itemtype']) : $event['event_type_color'], 'textColor' => Planning::$palette_fg[$index_color], 'typeColor' => empty($event['event_type_color']) ? self::getPaletteColor('ev', $event['itemtype']) : $event['event_type_color'], 'url' => isset($event['url']) ? $event['url'] : "", 'ajaxurl' => isset($event['ajaxurl']) ? $event['ajaxurl'] : "", 'itemtype' => $event['itemtype'], 'parentitemtype' => isset($event['parentitemtype']) ? $event['parentitemtype'] : "", 'items_id' => $event['id'], 'priority' => isset($event['priority']) ? $event['priority'] : "", 'state' => isset($event['state']) ? $event['state'] : "");
}
return $events;
}