Files
cwsvJudo/homepage/redesign2018/markdownExperiment/kalender.php
2018-05-05 17:09:49 +02:00

419 lines
15 KiB
PHP

<?php
// Standardvariablen und grundlegende Konfiguration (z.B. setlocale)
require_once( "./config.inc.php" );
require_once( $basePath."/bonus/db.inc" );
// Abfrage der Wettkampdaten der Einzelansicht
if(!empty($_GET['wkId'])){
if( (string)(int)$_GET['wkId'] != $_GET['wkId'] ){
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqlConn->connect_error) {
$messages['error'] .= "Datenbankverbindung fehlgeschlagen: " . $mysqlConn->connect_error;
}
else{
$wkInfo = array();
$mysqlConn->query("USE cwsvjudo;");
$wkInfoQuery = sprintf(
"SELECT * FROM wettkampfkalender WHERE wettkampfkalender.lfdeNr = '%s';",
$mysqlConn->real_escape_string($_GET['wkId'])
);
$wkResults = $mysqlConn->query($wkInfoQuery);
if( empty($wkResults) ){
$messages['error'] .= "Fehler bei Datenbankabfrage (".$wkInfoQuery.")!";
}
else{
$wkInfo = $wkResults->fetch_assoc();
// Zeichensatzkonvertierung
array_walk(
$wkInfo,
function (&$value, $key) {
$value = iconv("ISO-8859-1", "UTF-8", $value);
}
);
}
}
if($mysqlConn) $mysqlConn->close();
}
}
$siteData = array();
$siteData['lang'] = "de";
$siteData['head']['title'] = "Judo im Chemnitzer WSV - Kinder- und Erwachsenentraining";
if ( !empty($wkInfo) ){
$siteData['head']['title'] = $wkInfo['Veranstaltung'];
}
else{
$siteData['head']['title'] = empty($_GET["jahr"]) ? "Aktueller Wettkampfkalender" : "Wettkampfkalender ".$_GET["jahr"];
}
$siteData['head']['description'] = ( empty($_GET["jahr"]) ? "Aktueller Wettkampfkalender" : "Wettkampfkalender ".$_GET["jahr"] ) ." der Abteilung Judo des Chemnitzer Freizeit- und Wohngebietssportvereines";
$siteData['head']['keywords'] = "Judo, Wettkampf";
$siteData['head']['author'] = "Marko Bunzel";
/// @todo Wenn ich hier nichts angebe, wird getCurPagesUrl verwendet, was eine eventuelle Umstellung auf https vereinfachen würde
/// @todo Sollte vielleicht nur verwendet werden, wenn wirklich ein alternativer Link (mobile/amp, andere domain ...) existiert
$siteData['head']['canonicalLink'] = $baseUrl."/pages/responsive/kalender.php";
$siteData['head']['alternateLink']['smallScreen'] = "http://cwsvjudo.bplaced.net/pages/mobile/verein.wettkampfkalender.php";
$siteData['structuredData']['website'] =
"{\"@context\": \"http://www.schema.org\", ".
"\"@type\": \"WebSite\", ".
"\"name\": \"".( empty($_GET["jahr"]) ? "Aktueller Wettkampfkalender" : "Wettkampfkalender ".$_GET["jahr"] )." der Judoka des Chemnitzer WSV\", ".
"\"alternateName\": \"Termine, Ausschreibungen und Wegbeschreibunge für Wettkämpfe der Abteilung Judo des Chemnitzer Freizeit- und Wohngebietssportvereines\", ".
"\"url\": \"".$baseUrl."/pages/responsive/kalender.php".( empty($_GET["jahr"]) ? "" : "?jahr=".$_GET["jahr"] )."\"".
"}";
$siteData['header']['h1'] = "Judo";
$siteData['header']['breadcrumbs'] = array(
array(
"linkTarget" => $baseUrl."/pages/responsive/",
"linkTitle" => "Startseite der Homepage der Sektion Judo des Chemnitzer Freizeit- und Wohngebietssportvereines",
"caption" => "<img class=\"charImg\" src=\"".$baseUrl."/ressourcen/graphiken/banner/cwsv-judo-logo.png\" alt=\"Judo im Chemnitzer WSV - Logo\" title=\"Judo im Chemnitzer WSV\" />",
),
array(
"linkTarget" => $baseUrl."/pages/responsive/kalender.php",
"linkTitle" => "Wettkampfkalender der Sektion Judo des Chemnitzer Freizeit- und Wohngebietssportvereines",
"caption" => "Wettkampfkalender",
),
);
if( !empty( $_GET["jahr"]) )
$siteData['header']['breadcrumbs'][] = array(
"linkTarget" => $baseUrl."/pages/responsive/kalender.php?jahr=".$_GET["jahr"],
"linkTitle" => "Wettkampfkalender ".$_GET["jahr"]." der Sektion Judo des Chemnitzer Freizeit- und Wohngebietssportvereines",
"caption" => $_GET["jahr"],
);
$siteData['mainNav'] = array(
array(
'caption' => 'Home',
'title' => 'Homepage der Abteilung Judo des Chemnitzer Freizeit- und Wohngebietsportvereines',
'href' => 'index.php',
'isActive' => 'true'
),
array(
'caption' => 'Verein',
'title' => 'Informationen über den Chemnitzer Freizeit- und Wohngebietssportverein und dessen Sektion Judo',
'href' => 'verein.php',
//'isActive' => 'true'
),
array(
'caption' => 'News',
'title' => 'Bekanntmachungen der Abteilung Judo des Chemnitzer Freizeit- und Wohngebietsportvereines',
'href' => 'news.php'
),
array(
'caption' => 'Extras',
'title' => 'Links, Downloads, ein kleines Quiz und Trainingshelferlein',
'href' => 'extras.php'
),
array(
'caption' => 'Kontakt',
'title' => 'Möglichkeiten mit dem Chemnitzer Freizeit- und Wohngebietssportverein in Kontakt zu treten',
'href' => 'kontakt.php',
//'isActive' => 'true',
),
);
// @todo Ersteinmal das Standarduntermenü übernommen. Muss noch gegen
// das Kalenderuntermenü ausgetauscht werden. Und es muss sich
// Gedanken gemacht werden, wie das Untermenü auszusehen hat...
$siteData['subNav'] = array(
array(
'caption' => "Trainings&shy;zeiten",
'icon' => "/ressourcen/graphiken/icons/clockIconFriendly.svg",
'title' => "Trainingszeiten und -orte der Judoka des Chemnitzer WSV",
'href' => "trainingszeiten.php"
),
array(
'caption' => "Termine",
'icon' => "/ressourcen/graphiken/icons/calendarIcon.svg",
'title' => "Kalender mit Terminen für Wettkämpfe",
'href' => "kalender.php"
),
array(
'caption' => "Gallerien",
'icon' => "/ressourcen/graphiken/icons/gallery.svg",
'title' => "Bilder und Videos von unseren Wettkämpfen und sonstigen Veranstaltungen",
'href' => "verein.galerien.php"
),
array(
'caption' => "JudoWiki",
'icon' => "/ressourcen/graphiken/icons/wikipediaW.svg",
'title' => "Ein kleines Nachschlagewerk über Judo",
'href' => "/JudoWiki"
),
array(
'caption' => "Kontakt",
'icon' => "/ressourcen/graphiken/icons/contact4Ways.svg",
'title' => "Möglichkeiten mit dem Chemnitzer Freizeit- und Wohngebietssportverein in Kontakt zu treten",
'href' => "kontakt.php"
),
);
$siteData['main'] = "";
// Eine Einzelansicht, falls ein wkInfo ausgefüllt wurde
if( !empty($wkInfo) ){
$siteData['main'] .=
"<h2>".$wkInfo['Veranstaltung']."</h2>".
"<ul>".
"<li>Datum: <time datetime=\"".$wkInfo['Datum']."\">".strftime("%a, %d. %B %Y", strtotime($wkInfo['Datum']) )."</time></li>".
"<li>Altersklassen: ".$wkInfo['Altersklassen']."</li>".
"<li>Ort: <a href=\"".$wkInfo['Routenplaner']."\">".$wkInfo['Ort']."</a></li>".
"</ul>".
"<nav>".
"<ul>".
"<li>".
"<a href =\"".$wkInfo['Ausschreibung']."\">".
"<div>Link zur Ausschreibung</div>".
"</a>".
"</li>".
"<li>".
"<a href=\"".$wkInfo['Routenplaner']."\">".
"<div>Link zum Routenplaner</div>".
"</a>".
"</li>".
"<li>".
"<a href =\"".$basePath."/ressourcen/phpLib/calendar.php?wkID=".$wkInfo['lfdeNr']."\">".
"<div>Termin als iCal</div>".
"</a>".
"</li>".
"</ul>".
"</nav>".
"<hr />";
}
// Die Tabelle mit den kommenden Wettkämpfen oder den Wettkämpfen eines Jahres
try{
$db_connection = new PDO('mysql:host='.$db_server.';dbname='.$db_name, $db_user, $db_password);
// mögliche Werte für das jahr herausfinden
$jahre = array();
$query = "SELECT DISTINCT DATE_FORMAT( Datum, '%Y') FROM cwsvjudo.wettkampfkalender WHERE 1 ORDER BY DATE_FORMAT( Datum, '%Y' ) DESC";
$ergebnis = $db_connection->query($query);
foreach($ergebnis as $row){
array_push($jahre, $row["DATE_FORMAT( Datum, '%Y')"]);
}
// ist das übergebene jahr ein gültiges?
$jahr = $_GET["jahr"];
if($jahr){
if(in_array($jahr, $jahre)){
$minDate = $jahr."-01-01";
$maxDate = $jahr."-12-31";
$siteData['main'] .= "<h2>Wettkampfkalender ".$jahr."</h2>";
}
else{
$siteData['main'] .= "Keine Wettkämpfe für das Jahr ".$jahr." gefunden!";
}
}
else{
$minDate = date("Y-m-d", time());
$maxDate = "";
$siteData['main'] .= "<h2>Kommende Wettkämpfe</h2>";
}
$query="SELECT Datum,Veranstaltung,Ausschreibung,Ort,Routenplaner,Altersklassen,lfdeNr FROM wettkampfkalender WHERE Datum >= \"".$minDate."\" ORDER BY Datum ASC";
if($maxDate){
$query="SELECT Datum,Veranstaltung,Ausschreibung,Ort,Routenplaner,Altersklassen,lfdeNr FROM wettkampfkalender WHERE Datum >= \"".$minDate."\" AND Datum <= \"".$maxDate."\" ORDER BY Datum ASC";
}
$ergebnis = $db_connection->query($query);
$siteData['main'] .=
"<table class=\"wkKalender\">".
"<thead>".
"<tr>".
"<th>Datum</th>".
"<th>Veranstaltung</th>".
"<th>Ort</th>".
"<th>Altersklasse(n)</th>".
"<th>iCal</th>".
"</tr>".
"</thead>".
"<tbody>";
$ergebnis = $db_connection->query($query);
$lastMonthName = "";
foreach($ergebnis as $wk){
array_walk(
$wk,
function (&$value, $key) {
$value = iconv("ISO-8859-1", "UTF-8", $value);
}
);
if($lastMonthName != strftime("%B", strtotime($wk['Datum']) )){
$lastMonthName = strftime("%B", strtotime($wk['Datum']) );
$siteData['main'] .= "<tr><th colspan=\"5\">".$lastMonthName."</th></tr>";
$siteData['main'] .= "<tr><th colspan=\"5\"></th></tr>";
}
$siteData['main'] .=
"<tr>".
"<script type=\"application/ld+json\">".
"{".
"\"@context\": \"http://schema.org\", ".
"\"@type\": \"Event\", ".
"\"name\": \"".$wk['Veranstaltung']."\", ".
"\"startDate\": \"".$wk['Datum']."\", ".
"\"endDate\": \"".$wk['Datum']."\", ".
"\"url\": \"".$baseUrl."/pages/responsive/kalender.php?wkId=".$wk['lfdeNr']."\", ".
"\"description\": \"Judo-Wettkampf der Altersklasse(n) ".$wk['Altersklassen']."\", ".
"\"location\": {".
"\"@type\": \"Place\", ".
"\"name\": \"".$wk['Ort']."\", ".
"\"address\": {".
"\"@type\": \"PostalAddress\", ".
"\"addressLocality\": \"".$wk['Ort']."\"".
"}".
"}".
"}".
"</script>".
"<td class=\"noWrap\">".
"<time datetime=\"".$wk['Datum']."\">".
strftime("%Y-%m-%d (%a)", strtotime($wk['Datum']) ).
"</time>".
"</td>".
"<td class=\"hyphenate\">".
"<a title=\"Ausschreibung ".$wk['Veranstaltung']."\" href=\"".$wk['Ausschreibung']."\">".
"<span property=\"name\">".$wk['Veranstaltung']."</span>".
"</a>".
"</td>".
"<td>".
"<a title=\"Wegbeschreibung ".$wk['Veranstaltung']."\" href=\"".$wk['Routenplaner']."\">".
"<span>".$wk['Ort']."</span>".
"</a>".
"</td>".
"<td>".
$wk['Altersklassen'].
"</td>".
"<td>".
"<a title=\"Termin für ".$wk['Veranstaltung']." als iCal\" href=\"".$baseUrl."/ressourcen/phpLib/calendar.php?wkID=".$wk['lfdeNr']."\">iCal</a>".
"</td>".
"</tr>";
}
$siteData['main'] .=
"</tbody>".
"<tfoot>".
"<tr>".
"<th>Datum</th>".
"<th>Veranstaltung</th>".
"<th>Ort</th>".
"<th>Altersklasse(n)</th>".
"<th>iCal</th>".
"</tr>".
"</tfoot>".
"</table>".
"<div style=\"font-size:xx-small\">".
"Alle Angaben ohne Gewähr! Fehler und Ergänzungen dürfen gerne gemeldet werden.".
"</div>".
"<a href=\"".$baseUrl."/downloads/Ausschreibungen/\">Link zum Archiv mit allen Ausschreibungen</a>.".
"<hr />".
"<div class=\"wkSelektor\">".
"Im folgendem kann man sich mehrere Wettkampftermine in einer <a href=\"https://de.wikipedia.org/wiki/ICalendar\">ICalendar</a>-Datei zusammenstellen. Zum An-/Abwählen bei gedrückter Strg-Taste mit der linken Maustaste die jeweiligen Wettkämpfe anklicken.".
"<form action=\"".$baseUrl."/ressourcen/phpLib/wkCustomICal.php\" method=\"POST\">".
"<label>Kommende Wettkämpfe:</label>".
"<div><select name=\"wkIDs[]\" multiple=\"multiple\" size=\"5\">";
$ergebnis = $db_connection->query($query);
foreach($ergebnis as $wk){
array_walk(
$wk,
function (&$value, $key) {
$value = iconv("ISO-8859-1", "UTF-8", $value);
}
);
$siteData['main'] .=
"<option value=\"".$wk['lfdeNr']."\">".
$wk['Datum'].
"--".
$wk['Veranstaltung'].
"(".$wk['Altersklassen'].")".
"</option>";
}
$siteData['main'] .=
"</select></div>".
"<button type=\"submit\">iCal erzeugen</button>".
"</form>".
"</div>";
$db_connection = NULL;
}
catch(PDOException $db_error){
$messages['error'] .= "Error: ".$db_error->getMessage()."<br/>";
}
// Die Inhaltsdaten sind gesetzt, jetzt können sie in die Vorlage eingefügt werden
require_once($basePath."/pages/responsive/cwsvJudo-Template.inc.php");
exit();
?>
<!-- Vertikale Navigationsleiste an der Seite -->
<!-- @todo muss bei Gelegenheit mal überarbeitet werden -->
<div id="navVerti">
<nav><ul>
<li>
<a title="Wettkampfplaner der Abteilung Judo des Chemnitzer WSV" href="/pages/desktop/wkParticipo/">
Wett&shy;kampf&shy;pla&shy;ner
</a>
</li>
<?php
if(!$_GET["jahr"]){
echo "<li class=\"activeNav\">kommende Wett&shy;k&auml;mpfe</li>";
}
else{
echo "<li><a href=\"/pages/desktop/verein.wettkampfkalender.php\">komm&shy;ende Wett&shy;k&auml;mpfe</a></li>";
}
foreach($jahre as $runner){
if($_GET["jahr"] == $runner){
echo "<li class=\"activeNav\"> Wett&shy;k&auml;mpfe ".$runner."</li>";
}
else{
echo "<li><a href=\"/pages/desktop/verein.wettkampfkalender.php?jahr=".$runner."\">Wett&shy;k&auml;mpfe ".$runner."</a></li>";
}
}
?>
</ul></nav>
<hr />
<!--Anfang der Einbindung des Counters; die Zeile 'TEMPLATE;' DARF NICHT EINGERÜCKT SEIN-->
<div>
<?php
$chCounter_template = <<<TEMPLATE
<span class="bold">Besucher</span><br/>
Online: {V_VISITORS_CURRENTLY_ONLINE}<br/>
Heute: {V_VISITORS_TODAY}<br/>
Gestern: {V_VISITORS_YESTERDAY}<br/>
Tagesrekord: {V_MAX_VISITORS_PER_DAY}<br/>
Insgesamt: {V_TOTAL_VISITORS}<br/>
<span class="bold">Seitenaufrufe</span><br/>
Diese Seite: {V_PAGE_VIEWS_THIS_PAGE}<br/>
Insgesamt: {V_TOTAL_PAGE_VIEWS}<br/>
TEMPLATE;
$chCounter_page_title = "Wettkampfkalender";
if(!empty($_GET["jahr"])){
$chCounter_page_title .= " ".$_GET["jahr"];
}
if(!empty($wkInfo['Veranstaltung'])){
$chCounter_page_title .= " - ".mb_convert_encoding($wkInfo['Veranstaltung'], 'UTF-8', 'ISO-8859-1');
}
$chCounter_visible=1;
include($_SERVER['DOCUMENT_ROOT']."/expCounter/counter.php");
echo("<!--".$chCounter_page_title."-->");
?>
<!--Ende der Einbindung des Counters-->
</div>
</div>
<?php include($_SERVER['DOCUMENT_ROOT']."/pages/shared/sponsorList.html.inc");?>
<footer>
<p>
<a href="http://validator.w3.org/check?uri=http%3A%2F%2Fcwsvjudo.bplaced.net%2Fpages%2Fdesktop%2Fverein.wettkampfkalender.php<?php echo( urlencode(!empty($_SERVER['QUERY_STRING'])?"?".$_SERVER['QUERY_STRING']:"") );?>">Valid <img src="http://www.w3.org/html/logo/downloads/HTML5_1Color_Black.svg" alt="HTML 5" style="height:1em"></a>
</p>
</footer>
<link rel="stylesheet" media="screen and (min-width: 641px)" href="/ressourcen/css/cwsvJudo.css" />
<link rel="stylesheet" media="screen and (max-width: 640px)" href="/ressourcen/css/cwsvJudoMobile.css" />
</body>
</html>