events(); foreach ($events as $event) { $event_date = substr($event['DTSTART'], 0, 8); $event_month = substr($event['DTSTART'], 0, 6); if ($event_month >= $this_month) { $values['description'] = @$event['SUMMARY']; $values['date'] = $event_date; $date = date ('Y-m-d', strtotime($event_date)); $date_check = ''; $filter['id_group'] = $values['id_group']; $filter['date'] = $date; $date_check = db_get_value_filter ('date', 'talert_special_days', $filter); if ($date_check == $date) { if ($overwrite) { $id_special_day = db_get_value_filter ('id', 'talert_special_days', $filter); alerts_update_alert_special_day ($id_special_day, $values); } else { if ($skipped_dates == '') { $skipped_dates = __('Skipped dates: '); } $skipped_dates .= $date . " "; } } else { alerts_create_alert_special_day ($date, $same_day, $values); } } } $result = true; } else { $result = false; } if ($result) { db_pandora_audit ("Special days list", "Upload iCalendar " . $_FILES['ical_file']['name']); } ui_print_result_message ($result, __('Success to upload iCalendar') . "
" . $skipped_dates, __('Fail to upload iCalendar')); } if ($create_special_day) { $date = (string) get_parameter ('date'); $same_day = (string) get_parameter ('same_day'); $values = array(); $values['id_group'] = (string) get_parameter ('id_group'); $values['description'] = (string) get_parameter ('description'); list($year, $month, $day) = explode("-", $date); if ($year == '*') { # '0001' means every year. $year = '0001'; $date = $year . '-' . $month . '-' . $day; } if (!checkdate ($month, $day, $year)) { $result = ''; } else { $date_check = ''; $filter['id_group'] = $values['id_group']; $filter['date'] = $date; $date_check = db_get_value_filter ('date', 'talert_special_days', $filter); if ($date_check == $date) { $result = ''; } else { $result = alerts_create_alert_special_day ($date, $same_day, $values); $info = 'Date: ' . $date . ' Same day of the week: ' . $same_day . ' Description: ' . $values['description']; } } if ($result) { db_pandora_audit("Command management", "Create special day " . $result, false, false, $info); } else { db_pandora_audit("Command management", "Fail try to create special day", false, false); } ui_print_result_message ($result, __('Successfully created'), __('Could not be created')); } if ($update_special_day) { $id = (int) get_parameter ('id'); $alert = alerts_get_alert_special_day ($id); $date = (string) get_parameter ('date'); $date_orig = (string) get_parameter ('date_orig'); $same_day = (string) get_parameter ('same_day'); $description = (string) get_parameter ('description'); $id_group = (string) get_parameter ('id_group'); $id_group_orig = (string) get_parameter ('id_group_orig'); list($year, $month, $day) = explode("-", $date); if ($year == '*') { # '0001' means every year. $year = '0001'; $date = $year . '-' . $month . '-' . $day; } $values = array (); $values['date'] = $date; $values['id_group'] = $id_group; $values['same_day'] = $same_day; $values['description'] = $description; if (!checkdate ($month, $day, $year)) { $result = ''; } else { if ($id_group != $id_group_orig || $date != $date_orig) { $date_check = ''; $filter['id_group'] = $id_group; $filter['date'] = $date; $date_check = db_get_value_filter ('date', 'talert_special_days', $filter); if ($date_check == $date) { $result = ''; } else { $result = alerts_update_alert_special_day ($id, $values); $info = 'Date: ' . $date . ' Same day of the week: ' . $same_day . ' Description: ' . $description; } } else { $result = alerts_update_alert_special_day ($id, $values); $info = 'Date: ' . $date . ' Same day of the week: ' . $same_day . ' Description: ' . $description; } } if ($result) { db_pandora_audit("Command management", "Update special day " . $id, false, false, $info); } else { db_pandora_audit("Command management", "Fail to update special day " . $id, false, false); } ui_print_result_message ($result, __('Successfully updated'), __('Could not be updated')); } if ($delete_special_day) { $id = (int) get_parameter ('id'); $result = alerts_delete_alert_special_day ($id); if ($result) { db_pandora_audit("Command management", "Delete special day " . $id); } else { db_pandora_audit("Command management", "Fail to delete special day " . $id); } ui_print_result_message ($result, __('Successfully deleted'), __('Could not be deleted')); } echo ""; echo ""; echo ""; echo "
"; echo __('iCalendar(.ics) file') . ' '; html_print_input_file ('ical_file', false, false); echo ""; echo __('Same day of the week'); $days = array (); $days["monday"] = __('Monday'); $days["tuesday"] = __('Tuesday'); $days["wednesday"] = __('Wednesday'); $days["thursday"] = __('Thursday'); $days["friday"] = __('Friday'); $days["saturday"] = __('Saturday'); $days["sunday"] = __('Sunday'); html_print_select ($days, "same_day", $same_day, '', '', 0, false, false, false); echo ""; echo __('Group') . ' '; $own_info = get_user_info($config['id_user']); if (!users_can_manage_group_all("LM")) $can_manage_group_all = false; else $can_manage_group_all = true; html_print_select_groups(false, "LM", $can_manage_group_all, "id_group", $id_group, false, '', 0, false, false, true, '', false, 'width:100px;'); echo ""; echo __('Overwrite'); ui_print_help_tip(__('Check this box, if you want to overwrite existing same days.'), false); echo " "; html_print_checkbox ("overwrite", 1, $overwrite, false, false, false, true); echo ""; html_print_input_hidden('upload_ical', 1); echo ""; echo "
"; $this_year = date('Y'); $this_month = date('m'); $filter = array(); if (!is_user_admin($config['id_user'])) $filter['id_group'] = array_keys(users_get_groups(false, "LM")); // Show display range. $html = ""; echo $html; // Show calendar for ($month = 1; $month <= 12; $month++) { if ($display_range) { $display_month = $month; $display_year = $display_range; } else { $display_month = $this_month + $month - 1; $display_year = $this_year; } if ($display_month > 12) { $display_month -= 12; $display_year += 1; } $cal_table = new stdClass(); $cal_table->width = '100%'; $cal_table->class = 'databox data'; $cal_table->data = array (); $cal_table->head = array (); $cal_table->head[0] = __('Sun'); $cal_table->head[1] = __('Mon'); $cal_table->head[2] = __('Tue'); $cal_table->head[3] = __('Wed'); $cal_table->head[4] = __('Thu'); $cal_table->head[5] = __('Fri'); $cal_table->head[6] = __('Sat'); $cal_table->cellstyle = array (); $cal_table->size = array (); $cal_table->size[0] = '14%'; $cal_table->size[1] = '14%'; $cal_table->size[2] = '14%'; $cal_table->size[3] = '14%'; $cal_table->size[4] = '14%'; $cal_table->size[5] = '14%'; $cal_table->size[6] = '14%'; $cal_table->align = array (); $cal_table->border = '1'; $cal_table->titlestyle = 'text-align:center; font-weight: bold;'; switch ($display_month) { case 1: $cal_table->title = __('January'); break; case 2: $cal_table->title = __('February'); break; case 3: $cal_table->title = __('March'); break; case 4: $cal_table->title = __('April'); break; case 5: $cal_table->title = __('May'); break; case 6: $cal_table->title = __('June'); break; case 7: $cal_table->title = __('July'); break; case 8: $cal_table->title = __('August'); break; case 9: $cal_table->title = __('September'); break; case 10: $cal_table->title = __('October'); break; case 11: $cal_table->title = __('November'); break; case 12: $cal_table->title = __('December'); break; } $cal_table->title .= ' / ' . $display_year; $last_day = date('j', mktime(0, 0, 0, $display_month + 1, 0, $display_year)); $cal_line = 0; for ($day = 1; $day < $last_day + 1; $day++) { $week = date('w', mktime(0, 0, 0, $display_month, $day, $display_year)); if ($cal_line == 0 && $week != 0 && $day == 1) { for ($i = 0; $i < $week; $i++) { $cal_table->cellstyle[$cal_line][$i] = 'font-size: 18px;'; $cal_table->data[$cal_line][$i] = '-'; } } if ($week == 0 || $week == 6) { $cal_table->cellstyle[$cal_line][$week] = 'color: red;'; } $date = sprintf("%04d-%02d-%02d", $display_year, $display_month, $day); $date_wildcard = sprintf("0001-%02d-%02d", $display_month, $day); $special_days = ''; $filter['date'] = array($date, $date_wildcard); $filter['order']['field'] = 'date'; $filter['order']['order'] = 'DESC'; $special_days = db_get_all_rows_filter ('talert_special_days', $filter); if ($special_days != '') { foreach ($special_days as $special_day) { $cal_table->data[$cal_line][$week] .= '
data[$cal_line][$week] .= 'color: red;'; } $cal_table->data[$cal_line][$week] .= '">'; $cal_table->data[$cal_line][$week] .= $day; $cal_table->data[$cal_line][$week] .= '
'; $cal_table->data[$cal_line][$week] .= ui_print_group_icon ($special_day["id_group"], true); if ($special_day["date"] == $date_wildcard) { $cal_table->data[$cal_line][$week] .= '(' . ui_print_help_tip('This is valid every year. However, this will be ignored if indivisual setting for the same group is available.', true) . ') '; } $cal_table->data[$cal_line][$week] .= __('Same as '); switch ($special_day['same_day']) { case 'monday': $cal_table->data[$cal_line][$week] .= __('Monday'); break; case 'tuesday': $cal_table->data[$cal_line][$week] .= __('Tuesday'); break; case 'wednesday': $cal_table->data[$cal_line][$week] .= __('Wednesday'); break; case 'thursday': $cal_table->data[$cal_line][$week] .= __('Thursday'); break; case 'friday': $cal_table->data[$cal_line][$week] .= __('Friday'); break; case 'saturday': $cal_table->data[$cal_line][$week] .= __('Saturday'); break; case 'sunday': $cal_table->data[$cal_line][$week] .= __('Sunday'); break; } $cal_table->data[$cal_line][$week] .= ui_print_help_tip($special_day['description'], true); if ($special_day["id_group"] || ($can_manage_group_all && $special_day["id_group"] == 0)) { $cal_table->data[$cal_line][$week] .= 'data[$cal_line][$week] .= '>' . html_print_image("images/wrench_orange.png", true) . '  '; $cal_table->data[$cal_line][$week] .= 'data[$cal_line][$week] .= '>'. html_print_image("images/cross.png", true) . '';; } $cal_table->data[$cal_line][$week] .= '
'; $cal_table->cellstyle[$cal_line][$week] = 'font-weight: bold;'; } } else { $cal_table->cellstyle[$cal_line][$week] .= 'font-size: 18px;'; $cal_table->data[$cal_line][$week] = $day . ' '; } $cal_table->data[$cal_line][$week] .= 'data[$cal_line][$week] .= '>' . html_print_image("images/plus.png", true) . ''; if ($week == 6) { $cal_line++; } } for ($padding = $week + 1; $padding <= 6; $padding++) { $cal_table->cellstyle[$cal_line][$padding] = 'font-size: 18px;'; $cal_table->data[$cal_line][$padding] = '-'; } html_print_table ($cal_table); } echo '
'; echo '
'; html_print_submit_button (__('Create'), 'create', false, 'class="sub next"'); html_print_input_hidden ('create_special_day', 1); echo ''; echo '
'; ?>
" . __('Display range: '); if ($display_range) { $html .= '[' . __('Default') . ']  '; if ($display_range > 1970) { $html .= '<< '; } $html .= '[' . $display_range . ']'; $html .= ' >>'; } else { $html .= '[' . __('Default') . ']  '; $html .= '<< '; $html .= '['; $html .= $this_year; $html .= ']'; $html .= ' >>'; } $html .= "