Merge /media/sdb1/gitRepositories/judo into redesign2018

Conflicts:
	homepage/redesign2018/markdownExperiment/wkParticipo/admin/showEvent.php
This commit is contained in:
marko
2018-12-03 17:40:44 +01:00
14 changed files with 259 additions and 48 deletions

View File

@@ -0,0 +1,58 @@
<?php
include_once("config.inc.php");
$basePath = "/users/cwsvjudo/www";
require_once($basePath."/config/cwsvJudo.config.php");
require_once($basePath."/config/phpcount.config.php");
require_once($basePath."/ressourcen/phpLib/phpcount/phpcount.php");
require_once($basePath."/ressourcen/phpLib/cwsvJudo/miscAssis.php");
$cwsvJudoDbConnection = getCwsvJudoDbConn();
$cwsvJudoDbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$akQuery =
$cwsvJudoDbConnection->prepare(
"SELECT lfdeNr, Datum, Veranstaltung, Altersklassen FROM cwsvjudo.`wettkampfkalender` WHERE DATUM > CURRENT_DATE() ORDER BY Datum ASC, lfdeNr ASC LIMIT 24;"
);
$akQuery->execute();
$wkList = $akQuery->fetchAll(PDO::FETCH_ASSOC);
// Zeichensatzkonvertierung
$someOptions = array();
if( empty($someOptions['dbCharset']) )
$someOptions['dbCharset'] = "ISO-8859-1";
if( empty($someOptions['outCharset']) )
$someOptions['outCharset'] = "UTF-8";
foreach($wkList as &$entry){
array_walk(
$entry,
function (&$value, $key, $someOptions) {
$value = iconv($someOptions['dbCharset'], $someOptions['outCharset'], $value);
},
$someOptions
);
}
?>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<table>
<?php
foreach($wkList as $wk){
$jg=array();
$jg=akListString2jgArray($wk['Altersklassen'], date('Y', strtotime($wk['Datum'])) );
echo("<tr><td>".$wk['lfdeNr']."</td><td>".$wk['Datum']."</td><td>".$wk['Veranstaltung']."</td><td>".$wk['Altersklassen']."</td><td>".json_encode($jg)."</td></tr>");
}
?>
</table>
</body>
</html>

View File

@@ -10,6 +10,7 @@ function echoWkTitle(){
);
}
/// Einen Wettkampfnamen per ID abfragen
function getWkName( $wkId, $alternative="Judo-Wettkampf" ){
if( !is_positive_integer($wkId) ) return $alternative;
@@ -215,8 +216,8 @@ $htmlWkTableString = "";
"<td data-title=\"Wegbeschreibung\">".
"<a title=\"Wegbeschreibung ".$wk['Veranstaltung']."\" href=\"".$wk['Routenplaner']."\"><span>".$wk['Ort']."</span></a>".
"</td>".
"<td data-title=\"Altersklassen\">".
$wk['Altersklassen'].
"<td data-title=\"Altersklassen\" class=\"tooltip\">".
$wk['Altersklassen']."<span class=\"tooltiptext\">".json_encode(akListString2jgArray($wk['Altersklassen']))."</span>".
"</td>".
"<td data-title=\"iCal\">".
"<a title=\"Termin für ".$wk['Veranstaltung']." in Kalender übernehmen\" href=\"/ressourcen/phpLib/calendar.php?wkID=".$wk['lfdeNr']."\">iCal</a>".
@@ -251,6 +252,83 @@ function nicerAkList($akArray){
return $ret;
}
/// Als String gegebene Altersklassen als Jahrgangsintervalle
/// ausdrücken
function akListString2jgArray($akListString, $year = NULL ){
$ret = array();
if($year==NULL)
$year=date("Y");
else{
if( !((int)$year == $year && (int)$year >= 0) )
$year=date("Y");
}
$year = (int)$year;
foreach(explode(" ", $akListString) as $ak)
array_push(
$ret,
akString2jgIntervall($ak, $year)
);
return $ret;
}
/// Aus einer als String gegebenen Altersklasse ein Jahrgangsintervall
/// machen
function akString2jgIntervall($akString, $year){
$ret= array(NULL, NULL);
// Speziell für die Ux-Altersklassen
// Es fehlt noch das <=U
$akUmatchString = "/(.*)U(.*)/";
$matches = array();
preg_match($akUmatchString, $akString, $matches);
// Wenn wir nicht den gesamten akString Matchen ist etwas schief
// gelaufen
if($matches[0]==$akString){
// Das ausgelesene Alter der Ux sollte eine positive Integer sein,
// sonst ist was schiefgelaufen
$ageLimit = (int)$matches[2];
if( ($ageLimit == $matches[2] && $ageLimit > 0) ){
$ret[0] = $year-$ageLimit+1;
if($matches[1] == "")
$ret[1] = $year-$ageLimit+2;
else{
if($matches[1] == "-")
$ret[1] = $year-$ageLimit+3;
else{
if($matches[1] == "--")
$ret[1] = $year-$ageLimit+4;
}
}
}
return $ret;
}
// Speziell Altersklassen der Form Jg.x-y
$akUmatchString = "/Jg\.(.*)\-(.*)/";
$matches = array();
preg_match($akUmatchString, $akString, $matches);
// Wenn wir nicht den gesamten akString Matchen ist etwas schief
// gelaufen
if($matches[0]==$akString){
$ret[0]=(int)$matches[1];
$ret[1]=(int)$matches[2];
return $ret;
}
return $ret;
}
/// Wettkampfdaten als json-formatierte strukturierte Event-Daten
function wkArray2jsonSdEvent($wk){
@@ -264,6 +342,10 @@ return
// "\"url\": \"http://cwsvjudo.bplaced.net/pages/desktop/verein.wettkampfkalender.php?wkId=".$wk['lfdeNr']."\",".
"\"url\": \"http://cwsvjudo.bplaced.net/wkKalender/".$wk['lfdeNr']."/".toAscii( html_entity_decode( $wk['Veranstaltung'] ))."\",".
"\"description\": \"Judo-Wettkampf der Altersklasse(n) ".nicerAkList( $wk['Altersklassen'] )."\",".
"\"performer\": {".
"\"@type\": \"PerformingGroup\"\,".
"\"name\": \"Judoka der Altersklasse(n) ".nicerAkList( $wk['Altersklassen'] )."\"".
"}".
"\"location\": {".
"\"@type\": \"Place\",".
"\"name\": \"".$wk['Ort']."\",".

View File

@@ -32,7 +32,11 @@ ftpUpload:
lftp -e 'set ftp:ssl-allow no; set net:limit-rate $(lftpNetLimitRate); mkdir -f $(ftpPathBase)/$(ftpFilePath)/$(VID_GAL_DIR); mkdir -f $(ftpPathBase)/$(ftpFilePath)/$(VID_GAL_DIR)/thumbnails; mkdir -f $(ftpPathBase)/$(ftpFilePath)/$(VID_GAL_DIR)/webm; put $(vidGalIndexPhp) -o $(ftpPathBase)/$(ftpFilePath)/$(VID_GAL_DIR)/index.php; put videos/config.inc.php -o $(ftpPathBase)/$(ftpFilePath)/$(VID_GAL_DIR)/config.inc.php; mirror $(dryRun) $(timeHandling) -R videos/thumbnails $(ftpPathBase)/$(ftpFilePath)/$(VID_GAL_DIR)/thumbnails; mirror $(dryRun) $(timeHandling) -R videos/webm $(ftpPathBase)/$(ftpFilePath)/$(VID_GAL_DIR)/webm; quit; ' \
-u $(ftpUser),$(ftpPassword) ftp://$(ftpServer)
for file in videos/webm/*; do \
filename=$${file##*/}; \
$(vidGalInsertScript) --shiaiYamlFile=./shiaiData.yaml --vidUrl="http://cwsvjudo-media-2018.unaux.com/$(ftpFilePath)/$(VID_GAL_DIR)/webm/$${filename}" --checkSum=$${filename%.*};\
done;\
# for file in videos/webm/*; do \
# filename=$${file##*/}; \
# $(vidGalInsertScript) \
# --shiaiYamlFile=./shiaiData.yaml \
# --vidUrl="http://cwsvjudo-media-2018.unaux.com/$(ftpFilePath)/$(VID_GAL_DIR)/webm/$${filename}" \
# --posterUrl="http://cwsvjudo-media-2018.unaux.com/$(ftpFilePath)/$(VID_GAL_DIR)/thumbnails/$${filename%.*}.jpg" \
# --checkSum=$${filename%.*};\
# done;\

View File

@@ -835,3 +835,39 @@
.wkBoxMediaGallery > *{
flex-basis:50%;
}
/*
* Tooltipps
*/
/* Tooltip container */
.tooltip {
position: relative;
display: inline-block;
border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
}
/* Tooltip text */
.tooltip .tooltiptext {
visibility: hidden;
width: 120px;
background-color: black;
color: #fff;
text-align: center;
padding: 5px 0;
border-radius: 6px;
/* Position the tooltip text - see examples below! */
position: absolute;
z-index: 1;
}
}
/* Show the tooltip text when you mouse over the tooltip container */
.tooltip:hover .tooltiptext {
visibility: visible;
}

View File

@@ -18,29 +18,33 @@ if($_GET['action'] == "INSERT"){
$wkId = $_GET['wkId'];
$checkSum = urldecode( $_GET['checkSum'] );
$vidUrl = urldecode( $_GET['vidUrl'] );
$posterUrl = urldecode( $_GET['posterUrl'] );
echo("CheckSum is ".$checkSum);
echo("vidUrl is ".$vidUrl);
echo("CheckSum is ".$checkSum."\n");
echo("vidUrl is ".$vidUrl."\n");
echo("posterUrl is ".$posterUrl."\n");
$vidQuery =
$cwsvJudoDbConnection->prepare(
"INSERT IGNORE INTO cwsvjudo.`shiai.videos` ( wkId, checkSum, url ) VALUES ( :wkId, HEX(:checkSum), :vidUrl);"
"INSERT IGNORE INTO cwsvjudo.`shiai.videos` ( wkId, checkSum, url, posterUrl ) VALUES ( :wkId, UNHEX(:checkSum), :vidUrl, :posterUrl );"
);
$vidQuery->bindParam(':wkId', intval($wkId), PDO::PARAM_INT);
$vidQuery->bindParam(':checkSum', $checkSum );
$vidQuery->bindParam(':vidUrl', $vidUrl );
$vidQuery->bindParam(':posterUrl', $posterUrl );
echo("INSERT IGNORE INTO cwsvjudo.`shiai.videos` ( wkId, checkSum, url, posterUrl ) VALUES ( ".$wkId.", UNHEX('".$checkSum."' ), '".$vidUrl."', '".$posterUrl."' );\n");
$vidQuery->execute();
$vidQuery =
$cwsvJudoDbConnection->prepare(
"UPDATE cwsvjudo.`shiai.videos` SET wkId=:wkId, url=:vidUrl WHERE checkSum=HEX( :checkSum );"
"UPDATE cwsvjudo.`shiai.videos` SET wkId=:wkId, url=:vidUrl, posterUrl=:posterUrl WHERE checkSum=UNHEX( :checkSum );"
// "UPDATE cwsvjudo.`shiai.videos` url=:vidUrl WHERE checkSum=HEX(:checkSum);"
);
$vidQuery->bindParam(':wkId', intval($wkId), PDO::PARAM_INT);
$vidQuery->bindParam(':checkSum', $checkSum );
$vidQuery->bindParam(':vidUrl', $vidUrl );
$vidQuery->bindParam(':posterUrl', $posterUrl );
echo( "UPDATE cwsvjudo.`shiai.videos` SET wkId=".$wkId.", url='".$vidUrl."', posterUrl='".$posterUrl."' WHERE checkSum=UNHEX( '".$checkSum."' );\n");
$vidQuery->execute();
}
@@ -64,8 +68,8 @@ if($_GET['action'] == "INSERT"){
<body>
<?php
var_dump($_GET);
var_dump($wkVideos);
//var_dump($_GET);
//var_dump($wkVideos);
?>
</body>

View File

@@ -13,6 +13,7 @@ argParser = argparse.ArgumentParser()
#argParser.add_argument("wkId", type=int)
argParser.add_argument("--checkSum")
argParser.add_argument("--vidUrl")
argParser.add_argument("--posterUrl")
argParser.add_argument("--shiaiYamlFile")
argv = argParser.parse_args()
@@ -26,7 +27,8 @@ payLoad = {
'action' : "INSERT",
'wkId' : shiaiData['wkId'],
'checkSum': urllib.parse.quote(argv.checkSum),
'vidUrl' : urllib.parse.quote(argv.vidUrl)
'vidUrl' : urllib.parse.quote(argv.vidUrl),
'posterUrl' : urllib.parse.quote(argv.posterUrl)
}
r = requests.get('http://cwsvjudo.bplaced.net/admin/vidGal.php', params=payLoad, auth=('marko', '***REMOVED***'))

View File

@@ -33,7 +33,7 @@
"Neue Fahrt für eventId " . $_POST['f']['eventId'] . " mit " . $_POST['f']['anzPlaetze'] . " hinzugefügt";
$userData = getUserData($mysqli, $_SESSION['user']['userId']);
$eventData = getEventData($mysqli, $_POST['f']['eventId']);
$eventData = getWkEventData($mysqli, $_POST['f']['eventId']);
$wkData = getWkData($mysqli, $eventData['wkId']);
$notificationMail['to'] = $userData['eMail'];
@@ -74,7 +74,7 @@
$message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error;
}
$eventData = getEventData($mysqli, $_POST['f']['eventId']);
$eventData = getWkEventData($mysqli, $_POST['f']['eventId']);
$wkData = getWkData($mysqli, $eventData['wkId']);
?>
<div id="meldungsBox">

View File

@@ -20,7 +20,7 @@
$message['error'] .= "Datenbankverbindung fehlgeschlagen: ".$mysqlConn->connect_error."<br /";
}
else{
$wkEventData = getEventData($mysqlConn, $_POST['f']['eventId']);
$wkEventData = getWkEventData($mysqlConn, $_POST['f']['eventId']);
if( date("Y-m-d") > $wkEventData['meldefrist']){
$message['error'] .= "Die Meldefrist ist bereits abgelaufen!<br />";
@@ -56,6 +56,7 @@
}
}
else{
// @todo hier müsste das Auslösen der Meldung
$userData = getUserData($mysqlConn, $_SESSION['user']['userId']);
$starterData = getUserData($mysqlConn, $_POST['f']['userId']);
// $wkData = getWkData($mysqlConn, $eventData['wkId']);

View File

@@ -19,7 +19,7 @@
$message['error'] .= "Datenbankverbindung fehlgeschlagen: ".$mysqlConn->connect_error."<br /";
}
else{
$wkEventData = getEventData($mysqlConn, $_POST['f']['eventId']);
$wkEventData = getWkEventData($mysqlConn, $_POST['f']['eventId']);
if( date("Y-m-d") > $wkEventData['meldefrist']){
$message['error'] .= "Die Meldefrist ist bereits abgelaufen!<br />";

View File

@@ -16,19 +16,20 @@
}
else{
if( (string)(int)$_POST['f']['eventId'] == $_POST['f']['eventId'] ){
$mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqli->connect_error) {
$message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error;
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqlConn->connect_error) {
$sqlMessage['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqlConn->connect_error;
}
else{
// Abfrage der Eventdaten
$eventData = getWkEventData($mysqli, $_POST['f']['eventId']);
$eventData = getWkEventData($mysqlConn, $_POST['f']['eventId'], array('outCharset'=>"UTF-8"));
if( empty($eventData) ) $message['error'] = 'Fehler: keine Eventdaten zurückgeliefert!';
else{
// Abfrage der Starterdaten des Events
$starterData = getStarterForEvent($mysqli, $eventData['id']);
// Abfrage der Fahrtdaten des Events
$fahrten = getFahrtenForEvent($mysqli, $eventData['id']);
// Abfrage der Starterdaten des Events
$starterData = getStarterForEvent($mysqlConn, $eventData['id']);
// Abfrage der Fahrtdaten des Events
$fahrten = getFahrtenForEvent($mysqlConn, $eventData['id']);
}
}
}

View File

@@ -1,5 +1,7 @@
<?php
session_start();
session_start([
'cookie_lifetime' => 86400, // 86400s sind 24h
]);
session_regenerate_id();
// Falls der serverseitige Logincookie nicht gesetzt ist, leite zur
if (empty($_SESSION['login'])) {
@@ -12,6 +14,5 @@
"Sie sind als <strong>".htmlspecialchars($_SESSION['user']['username'])."</strong> angemeldet.<br />".
"<a href=\"./logout.php\">Sitzung beenden</a>".
"</div>";
//<div style=\"border: 1px solid black\">".var_export($_SESSION, true)."</div>";
}
?>

View File

@@ -1,5 +1,7 @@
<?php
session_start();
session_start([
'cookie_lifetime' => 86400, // 86400s sind 24h
]);
session_regenerate_id();
// Falls der serverseitige Logincookie nicht gesetzt ist, leite zur
if (empty($_SESSION['login'])){

View File

@@ -205,6 +205,7 @@ setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
<?php
}
else{
// var_dump($wkEvents);
foreach( $wkEvents as $wk){
//print_r($wk);
$wkEvent = getWkEventData($mysqlConn, $wk['id'], array('outCharset'=>"UTF-8"));

View File

@@ -1,9 +1,17 @@
<?php
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
require_once('./local/wkParticipoConf.php.inc');
// require_once('./auth.php');
require_once('./authLogin.php');
require_once('./local/db.php.inc');
require_once('./lib/wkParticipoLib.inc.php');
$basePath = "/users/cwsvjudo/www";
require_once($basePath."/config/phpcount.config.php");
require_once($basePath."/ressourcen/phpLib/phpcount/phpcount.php");
$message = array();
$eventData = array();
@@ -21,8 +29,26 @@
$message['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error;
}
else{
$eventData = getEventData($mysqli, $_GET['eventId']);
$eventData = getWkEventData($mysqli, $_GET['eventId']);
if( empty($eventData) ) $message['error'] .= 'Fehler: keine Eventdaten zurückgeliefert!';
else{
if(!empty($eventData['bemerkungen'])){
$tmpJson = json_decode( $eventData['bemerkungen'], true);
if($tmpJson){
$eventData['Datum'] = $tmpJson['Datum'];
$eventData['Veranstaltung'] = $tmpJson['Veranstaltung'];
$eventData['Altersklassen'] = $tmpJson['Altersklassen'];
$eventData['Routenplaner'] = $tmpJson['Routenplaner'];
$eventData['Ausschreibung'] = $tmpJson['Ausschreibung'];
$eventData['bemerkungen'] = $tmpJson['bemerkungen'];
}
}
PHPCount::AddHit(
"Wettkampfplaner ".
($_SESSION['user']['username']?("(".htmlspecialchars($_SESSION['user']['username']).") "):"").
"- ".$eventData['Veranstaltung']
);
}
}
}
else $message['error'] .= "Fehler: eventId ist kein Int (".$_GET['eventId'].")";
@@ -34,7 +60,7 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wettkampfplanung - Wettkampfdetails<?php echo (empty($eventData) ? "" : " ".mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1'));?></title>
<title>Wettkampfplanung - Wettkampfdetails<?php echo( empty($eventData) ? "" : " ".$eventData['Veranstaltung'] );?></title>
<link rel="stylesheet" href="./style.css">
</head>
<body>
@@ -55,15 +81,15 @@
}
else{
?>
<h1><?php echo (empty($eventData) ? "" : " ".mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1'));?></h1>
<h1><?php echo (empty($eventData) ? "" : " ".$eventData['Veranstaltung']);?></h1>
<h2>Wettkampfdaten</h2>
<ul>
<li>Wettkampfname: <?php echo mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1');?></li>
<li>Datum: <time datetime="<?php echo mb_convert_encoding($eventData['Datum'], 'UTF-8', 'ISO-8859-1');?>"><?php echo mb_convert_encoding($eventData['Datum'], 'UTF-8', 'ISO-8859-1');?></time></li>
<li>Frist zum Einschreiben: <time datetime="<?php echo mb_convert_encoding($eventData['meldefrist'], 'UTF-8', 'ISO-8859-1');?>"><?php echo mb_convert_encoding($eventData['meldefrist'], 'UTF-8', 'ISO-8859-1');?></time> <a class="touchLink" href ="<?php echo(addToGcalUrl(mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1'), mb_convert_encoding($eventData['meldefrist'], 'UTF-8', 'ISO-8859-1') ));?>">Einschreibefrist in den Google Calendar übernehmen</a></li>
<li>Altersklassen: <?php echo mb_convert_encoding($eventData['Altersklassen'], 'UTF-8', 'ISO-8859-1');?></li>
<li>Ort: <a class="touchLink" href="<?php echo $eventData['Routenplaner'];?>"><?php echo mb_convert_encoding($eventData['Ort'], 'UTF-8', 'ISO-8859-1');?></a></li>
<li>Wettkampfname: <?php echo $eventData['Veranstaltung'];?></li>
<li>Datum: <time datetime="<?php echo $eventData['Datum'];?>"><?php echo $eventData['Datum'];?></time></li>
<li>Frist zum Einschreiben: <time datetime="<?php echo $eventData['meldefrist'];?>"><?php echo $eventData['meldefrist'];?></time> <a class="touchLink" href ="<?php echo(addToGcalUrl($eventData['Veranstaltung'], $eventData['meldefrist']));?>">Einschreibefrist in den Google Calendar übernehmen</a></li>
<li>Altersklassen: <?php echo $eventData['Altersklassen'];?></li>
<li>Ort: <a class="touchLink" href="<?php echo $eventData['Routenplaner'];?>"><?php echo $eventData['Ort'];?></a></li>
<li>Bemerkungen: <?php echo $eventData['bemerkungen'];?></li>
</ul>
@@ -85,7 +111,7 @@
</a>
</li>
<li>
<a href ="<?php echo(addToGcalUrl(mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1'), mb_convert_encoding($eventData['Datum'], 'UTF-8', 'ISO-8859-1') ));?>">
<a href ="<?php echo(addToGcalUrl($eventData['Veranstaltung'], $eventData['Datum'] ));?>">
<div>Termin in den Google Calendar übernehmen</div>
</a>
</li>
@@ -179,7 +205,7 @@
echo "<button class=\"touchButton\" type=\"submit\" disabled>Die Frist zum Einschreiben (".$eventData['meldefrist'].") ist bereits abgelaufen!</button>";
if (!empty($_SESSION['login'])){
echo( "<p>Frist für das Einschreiben verpasst? Für ein nachträgliches Eintragen mit dem Admin verständigen (<a href=\"mailto:cwsvjudo@arcor.de?Subject=".rawurlencode("Meldefrist ".mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1'))."\" target=\"_top\">Email an cwsvjudo@arcor.de</a>).</p>" );
echo( "<p>Frist für das Einschreiben verpasst? Für ein nachträgliches Eintragen mit dem Admin verständigen (<a href=\"mailto:cwsvjudo@arcor.de?Subject=".rawurlencode("Meldefrist ".$eventData['Veranstaltung'])."\" target=\"_top\">Email an cwsvjudo@arcor.de</a>).</p>" );
}
}
else{
@@ -232,13 +258,6 @@
}
}
if($mysqli) $mysqli->close();
?>
<!--Beginn der Einbindung des Counters-->
<?php
$chCounter_page_title = "Wettkampfplaner -- Eventansicht -- ".mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1');
$chCounter_page_url = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$chCounter_visible =0 ;
// include( $_SERVER['DOCUMENT_ROOT'].'/expCounter/counter.php');
?>
</body>
</html>