$j){ $_POST[$i] = urldecode($j); } } switch($_GET['action']){ case "updateCalendar": updateCalendar(); break; case "load": load(); break; case "save": save(); break; } /** creates new auto-generated holidays and removes past holidays */ ######################################## function updateCalendar(){ ######################################## // delete past holidays $query = sprintf("DELETE FROM bruckm_ticketcalendar WHERE holiday < NOW()"); $result = dbQuery($query); // if it is december, create auto-generated holidays for next year $year = date("Y") + 1; if (date("m") == 12) { // create saturdays and sundays $timestamp = time(); $day = date("w"); $secondsPerDay = 24 * 60 * 60; if($day == 0) $day = 7; $timestamp += (6 - $day) * $secondsPerDay; $maxTimestamp = strtotime($year . "-12-31"); while($timestamp <= $maxTimestamp){ $query = sprintf("INSERT IGNORE INTO bruckm_ticketcalendar (holiday) VALUES (%s)", sqlstring(date("Y-m-d", $timestamp))); dbQuery($query); $timestamp += $secondsPerDay; $query = sprintf("INSERT IGNORE INTO bruckm_ticketcalendar (holiday) VALUES (%s)", sqlstring(date("Y-m-d", $timestamp))); dbQuery($query); $timestamp += 6 * $secondsPerDay; } // create fixed holidays $holidays = array ("-01-01", "-01-06", "-05-01", "-08-15", "-11-01", "-12-08", "-12-25", "-12-26" ); foreach($holidays as $h){ $query = sprintf("INSERT IGNORE INTO bruckm_ticketcalendar (holiday) VALUES (%s)", sqlstring($year . $h)); dbQuery($query); } } // send mail to admin and office #@mail(ADMIN, "Bruckmühle Ticketkalender", "Feiertage aktualisiert"); #@mail(OFFICE, "Ticketreservierung: Feiertagskalender", "Der Feiertagskalender für das kommende Jahr wurde erstellt. Bitte fügen Sie gegebenenfalls zusätzliche Feiertage hinzu"); } /** saves changes to the calendar */ ######################################## function save(){ ######################################## if(!empty($_POST['added'])){ $added = explode("\t", $_POST['added']); foreach($added as $h){ $query = sprintf("INSERT IGNORE INTO bruckm_ticketcalendar (holiday) VALUES (%s)", sqlstring(date("Y-m-d", $h))); dbQuery($query); } } if(!empty($_POST['removed'])){ $removed = explode("\t", $_POST['removed']); foreach($removed as $h){ $query = sprintf("DELETE FROM bruckm_ticketcalendar WHERE holiday = %s", sqlstring(date("Y-m-d", $h))); dbQuery($query); } } } /** loads the calendar data */ ######################################## function load(){ ######################################## $query = sprintf("SELECT * FROM bruckm_ticketcalendar WHERE holiday > NOW() ORDER BY holiday ASC"); $result = dbQuery($query); $xml = ''; $xml .= ''; while($line = mysqli_fetch_array($result, MYSQLI_ASSOC)){ $xml .= ''; } $xml .= ''; header('Content-Type: text/xml'); echo $xml; } ?>