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

132 lines
4.0 KiB
PHP

<?php
/** loads event data
*
* @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");
require_once(ROOT."include/xml.inc.php");
dbQuery("SET NAMES utf8");
switch($_GET['action']){
case "loadEvent": loadEvent($_GET['id']);
break;
case "loadDates": loadDates($_GET['id']);
break;
}
/** loads event data
* @param id event id
*/
############################################
function loadEvent($id){
############################################
$query = sprintf("SELECT * FROM bruckm_ticketevent WHERE id = %d", $id);
$result = dbQuery($query);
$line = mysqli_fetch_array($result, MYSQLI_ASSOC);
$xml = '<?xml version="1.0" encoding="utf-8"?>';
$xml .= '<event id="' . $line['id'] . '" title="' . xmlstring($line['name']) . '" reservationtype="' . $line['reservationType'] . '" />';
header('Content-Type: text/xml');
echo $xml;
}
/** loads all dates of the event
* @param id event id
*/
############################################
function loadDates($id){
############################################
// load all reductions
$allReductions = array();
$query = sprintf("SELECT id, classId, name FROM bruckm_index WHERE class = 'TicketReduction' ORDER BY name ASC");
$result = dbQuery($query);
while($line = mysqli_fetch_array($result, MYSQLI_ASSOC)){
$allReductions[] = $line;
}
foreach($allReductions as $i=>$r){
$query = sprintf("SELECT * FROM bruckm_ticketreduction WHERE id = %d", $r['classId']);
$result = dbQuery($query);
$line = mysqli_fetch_array($result, MYSQLI_ASSOC);
$allReductions[$i]['type'] = $line['type'];
$allReductions[$i]['value'] = $line['value'];
}
// load dates
if($_GET['minTimeToEvent'] > 0){
$query = sprintf("SELECT * FROM bruckm_ticketdate WHERE `date` > DATE_ADD(NOW(), INTERVAL %d HOUR) AND eventId = %d ORDER BY `date` ASC",
sqlnum($_GET['minTimeToEvent']),
sqlnum($id));
}
else{
/*$query = sprintf("SELECT * FROM bruckm_ticketdate WHERE `date` > DATE_ADD(NOW(), INTERVAL -1 HOUR) AND eventId = %d ORDER BY `date` ASC",
sqlnum($id));*/
$query = sprintf("SELECT * FROM bruckm_ticketdate WHERE eventId = %d ORDER BY `date` ASC",
sqlnum($id));
}
$result = dbQuery($query);
$xml = '<?xml version="1.0" encoding="utf-8"?>';
$xml .= '<dates>';
while($line = mysqli_fetch_array($result, MYSQLI_ASSOC)){
$xml .= '<date id="' . $line['id'] . '" eventid="' . $line['eventId'] . '" timestamp="' . strtotime($line['date']) . '" ';
$xml .= 'room="' . $line['room'] . '" seats="' . $line['seats'] .'" ';
$xml .= 'seatsA="' . $line['seatsA'] . '" seatsB="' . $line['seatsB'] . '" seatsC="' . $line['seatsC'] . '" ';
$entries = explode("\t", $line['entries']);
$xml .= 'a="' . $entries[0] . '" ';
if(sizeof($entries) > 1) $xml .= 'b="' . $entries[1] . '" ';
if(sizeof($entries) > 2) $xml .= 'c="' . $entries[2] . '" ';
$workingDays = intval((strtotime($line['date']) - time()) / 60 / 60 / 24);
$query = sprintf("SELECT * FROM bruckm_ticketcalendar WHERE holiday <= %s AND holiday > %s",
sqlstring($line['date']),
sqlstring(date("Y-m-d")));
$result2 = dbQuery($query);
$workingDays -= mysqli_num_rows($result2);
$xml .= 'workingdays="' . $workingDays . '" >';
$reductions = explode("\t", $line['reductions']);
foreach($allReductions as $r){
$xml .= '<reduction name="' . trim($r['name']) . '" type="' . $r['type'] . '" value="' . $r['value'] . '" id="' . $r['classId'] . '" ';
if (in_array($r['id'], $reductions)) { // 'id' is flexicon id!
// extra check for "frühbucherbonus"
if ($r['type'] == '14d') {
if (strtotime($line['date']) > time() + 9 * 86400) {
$xml .= 'enabled="true"';
}
else {
$xml .= 'enabled="false"';
}
}
else {
$xml .= 'enabled="true"';
}
}
else{
$xml .= 'enabled="false"';
}
$xml .= ' />';
}
$xml .= '</date>';
}
$xml .= '</dates>';
header('Content-Type: text/xml');
echo $xml;
}
?>