Files
bm/public_html/public/tickets/culturecard.php
2025-09-24 13:26:28 +02:00

176 lines
4.1 KiB
PHP

<?php
/** loads culture card data
*
* @version 2.1.0
* @since 2008-04-19
* @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 "load": load();
break;
case "save": save();
break;
case "export": exportForExcel();
break;
case "cleanUp": cleanUp();
break;
case "add": add();
break;
}
/** loads the culture card data
*/
########################################
function load(){
########################################
$query = sprintf("SELECT * FROM bruckm_ticketculturecard WHERE id = %d", sqlnum($_REQUEST['id']));
$result = dbQuery($query);
$xml = '<?xml version="1.0" encoding="utf-8"?>';
$xml .= '<culturecard>';
while($line = mysqli_fetch_array($result, MYSQLI_ASSOC)){
$xml .= '<data owner="' . $line['owner'] . '" tickets="' . $line['tickets'] . '" reductions="' . $line['reductions'] . '" />';
}
$xml .= '</culturecard>';
header('Content-Type: text/xml');
echo $xml;
}
/** saves the culture card data
*/
########################################
function save(){
########################################
$query = sprintf("INSERT INTO bruckm_ticketculturecard (id, owner, tickets, reductions) VALUES (%d, %s, %d, %d)
ON DUPLICATE KEY UPDATE owner = %s, tickets = %d, reductions = %d",
sqlnum($_POST['id']),
sqlstring($_POST['owner']),
sqlnum($_POST['tickets']),
sqlnum($_POST['reductions']),
sqlstring($_POST['owner']),
sqlnum($_POST['tickets']),
sqlnum($_POST['reductions']));
$result = dbQuery($query);
echo "&ok=true&";
}
/** adds a new kulturcard
*/
########################################
function add(){
########################################
$file = $_GET['id'] . ".sql";
if (!file_exists($file)) {
echo "Ungültige URL: Die Kulturcard kann nicht gespeichert werden!";
return;
}
$f = fopen($file, "r");
$query = fread($f, filesize($file));
fclose($f);
unlink($file);
dbQuery($query);
echo "Die Kulturcard wurde in der Datenbank gespeichert!";
}
/** exports the list of culture cards for MS Excel
*/
######################################
function exportForExcel(){
######################################
/*$minDate = date("ymd") - 10000; // only culture cards that are less than 1 year old
$query = sprintf("SELECT * FROM bruckm_ticketculturecard WHERE id > %d ORDER BY id ASC",
sqlnum($minDate . "000"));*/
$query = "SELECT * FROM bruckm_ticketculturecard ORDER BY id ASC";
$result = dbQuery($query);
$out = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"1\">";
$out .= "<tr>";
$out .= "<th><b>Kulturcard #</b></th>";
$out .= "<th><b>Name</b></th>";
#$out .= "<th><b>Adresse</b></th>";
#$out .= "<th><b>PLZ</b></th>";
#$out .= "<th><b>Ort</b></th>";
$out .= "<th><b>Gratis Tickets</b></th>";
$out .= "<th><b>Ermäßigte Tickets</b></th>";
$out .= "<th><b>Ausstellungsdatum</b></th>";
$out .= "</tr>";
while ($line = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$id = sprintf("%012d", $line['id']);
$out .= "<tr>";
$out .= "<td>$id</td>";
$out .= "<td>$line[owner]</td>";
$out .= "<td>$line[tickets]</td>";
$out .= "<td>$line[reductions]</td>";
$out .= "<td>" . id2date($id) . "</td>";
$out .= "</tr>";
}
/*
$f = fopen("export.xls", "w");
fwrite($f, $out);
fclose($f);
chmod("export.xls", 0777);
echo "&ok=ok&";
*/
header("Content-Type: application/vnd-ms-excel");
header("Content-Disposition: attachment; filename=\"export.xls\"");
header('Pragma: no-cache');
header('Expires: 0');
echo $out;
exit();
}
/** deletes the exported xls after download
*/
#########################################
function cleanUp() {
#########################################
@unlink("export.xls");
echo "&ok=ok&";
}
/** converts the id to a date
*/
#########################################
function id2date($id){
#########################################
$y = "2" . substr($id, 2, 3);
$m = substr($id, 5, 2);
$d = substr($id, 7, 2);
return "$d.$m.$y";
}
?>