129 lines
3.4 KiB
PHP
129 lines
3.4 KiB
PHP
<?php
|
|
/** creates holidays and deletes past holidays
|
|
* must be called by a cronjob once a month
|
|
*
|
|
* @version 2.0.0
|
|
* @since 2008-02-13
|
|
* @author Martin Lenzelbauer
|
|
*
|
|
*/
|
|
define("ROOT", "../");
|
|
require_once(ROOT."include/config.inc.php");
|
|
require_once(ROOT."include/db.inc.php");
|
|
|
|
if(DEBUG){
|
|
foreach($_GET as $i=>$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 version="1.0" encoding="utf-8"?>';
|
|
$xml .= '<calendar>';
|
|
while($line = mysqli_fetch_array($result, MYSQLI_ASSOC)){
|
|
$xml .= '<holiday timestamp="' . strtotime($line['holiday']) . '" />';
|
|
}
|
|
$xml .= '</calendar>';
|
|
|
|
header('Content-Type: text/xml');
|
|
echo $xml;
|
|
|
|
}
|
|
|
|
?>
|