bring list of next events to eventPlaner appCard (currently breakes appCardLinking)

This commit is contained in:
marko
2021-12-24 11:34:42 +01:00
parent bfb024d288
commit eb2b32a85a
4 changed files with 96 additions and 8 deletions

View File

@@ -4,6 +4,9 @@
.parsedownCard h2{
font-size: 1.75rem;
}
.parsedownCard h3{
font-size: 1.5rem;
}
.parsedownCard ul li {
list-style-type: disc;
}

View File

@@ -21,6 +21,90 @@ setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
$cwsvJudoConfig["db"]["password"]
);
$userData = getUserData($dbConnection, $_SESSION['user']['userId']);
function getCommingWkEvents($dbConn, $someOptions=array() ){
// wir befinden uns in der Übergangsphase:
// - als Standard wird das derzeitige Verhalten definiert (ISO-8859-1
// und die Konvertierung erfolgt ausserhalb)
// - wenn einmal alle mbConvertEncoding weg sind, kann der Standard auf
// das gewünschte Verhalten umgestellt werden
$dbCharset = $someOptions['dbCharset'] ?? "ISO-8859-1";
// dbCharset = $someOptions['outCharset'] ?? "UTF-8";// das spätere, gewünschte Verhalten
$outCharset = $someOptions['outCharset'] ?? "ISO-8859-1";
$query =
"SELECT ".
"wkParticipo_Events.id, ".
"wkParticipo_Events.date, ".
"wkParticipo_Events.wkId, ".
"wkParticipo_Events.meldefrist, ".
"wkParticipo_Events.bemerkungen, ".
"wkParticipo_Events.kvOptions, ".
"wettkampfkalender.Datum, ".
"wettkampfkalender.Veranstaltung, ".
"wettkampfkalender.Altersklassen, ".
"wettkampfkalender.Ort, ".
"wettkampfkalender.Ausschreibung, ".
"wettkampfkalender.Routenplaner ".
"FROM wkParticipo_Events ".
"LEFT JOIN wettkampfkalender ".
"ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ".
"WHERE wkParticipo_Events.date >= CURDATE() ".
"ORDER BY wkParticipo_Events.date;";
$ret = dbQuery($dbConn, $query);
// $results = $anMysqlConn->query($query);
// // Bei einem Fehler bei der Abfrage soll NULL zurückgeliefert werden
// if( !$results ){
// echo("No Results: ".$anMysqlConn->error);
// return NULL;
// }
// // Bei einem leeren Ergebnis (NULL oder leeres Array) soll ein leeres Array zurückgeliefert werden
// if( empty($results) ) return array();
// while( $result = $results->fetch_assoc() ){
// array_walk(
// $result,
// function (&$value, $key, $someOptions) {
// $value = iconv($someOptions['dbCharset'], $someOptions['outCharset'], $value);
// },
// $someOptions
// );
// array_push( $ret, $result);
// }
return $ret;
}
// array(12) {
// ["id"]=> string(3) "139"
// ["date"]=> string(10) "2021-12-29"
// ["wkId"]=> string(0) ""
// ["meldefrist"]=> string(10) "2021-12-28"
// ["bemerkungen"]=> string(374) "{ "Datum": "2021-12-29", "Veranstaltung": "Jahresabschlusstraining", "Altersklassen": "alle", "bemerkungen": "
// Zum Abschluss des Jahres noch einmal eine kleine Einheit hauptsächlich zum Spielen
// Zeit: 16:00--19:00 Uhr
// ", "Ort": "unser Dojo, Str. Usti nad Labem 42, 09120 Chemnitz", "Routenplaner": "https://osm.org/go/0MIYhLf3Q-" }"
// ["kvOptions"]=> string(0) ""
// ["Datum"]=> string(0) ""
// ["Veranstaltung"]=> string(0) ""
// ["Altersklassen"]=> string(0) ""
// ["Ort"]=> string(0) ""
// ["Ausschreibung"]=> string(0) ""
// ["Routenplaner"]=> string(0) ""
// }
function getHtmlEventTable($eventList){
$ret = "</a><table>";
foreach($eventList as $event){
$e = json_decode($event['bemerkungen'], true);
$e = (($e==null)?$event:$e);
$e['id']=$event['id'];
$ret .= "<tr><td>".$e['Datum']."</td><td><a href=\"/pages/desktop/wkParticipo/showWkEvent.php?eventId=".$e['id']."\" >".$e['Veranstaltung']."</a></td></tr>";
}
$ret .= "</table><a>";
return $ret;
}
?>
<!DOCTYPE html>
<html>
@@ -65,10 +149,10 @@ setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
<ul class="sidenav sidenav-fixed sidenav-close" id="nav-mobile">
<li class="logo">
<a style="height:auto;" class="brand-logo" id="logo-container" href="/participo/">
<img style="max-width:100%;height:12vh;" class="responsive-img" src="http://cwsvjudo.bplaced.net/ressourcen/graphiken/logos/cwsvJudoLogoWappen.x256.png" />
<img alt="cwsvJudoApps" style="max-width:100%;height:12vh;" class="responsive-img" src="http://cwsvjudo.bplaced.net/ressourcen/graphiken/logos/cwsvJudoLogoWappen.x256.png" />
</a>
</li>
<li><?php require_once("sidenav/loginStatus.php");?></li>
<?php require_once("sidenav/loginStatus.php");?><!-- brings its own li -->
<li class="bold">
<a class="waves-effect waves-teal right-align" href="#AppList">Apps</a>
</li>
@@ -90,7 +174,7 @@ if($_SESSION['login']){
<!-- List of Mitmach-Apps -->
<div class="row" id="AppList">
<?php
//var_dump(getCommingWkEvents($dbConnection));
echo(
AppCard::fromArray([
'link' => "kyu",
@@ -103,7 +187,7 @@ echo(
])->htmlCode().
AppCard::fromArray([
'link' => "/machs",
'title' => "<strong>M</strong>ein <strong>Ach</strong>ievement <strong>S</strong>ystem",
'title' => "<em>M</em>ein <em>Ach</em>ievement <em>S</em>ystem",
'description'=> "Ein kleines Achievementsystem für die tägliche Herausforderung",
'imgUrl' => "images/mountain-climber.svg",
'actions' => [
@@ -113,7 +197,7 @@ echo(
AppCard::fromArray([
'link' => "/pages/desktop/wkParticipo",
'title' => "Event-Planer",
'description'=> "Organisieren der Teilnahmen (und nicht-Teilnahmen) an Wettkämpfen, Sondertrainingseinheiten, Feiern etc.",
'description'=> "Organisieren der Teilnahmen (und nicht-Teilnahmen) an Wettkämpfen, Sondertrainingseinheiten, Feiern etc.</p>".getHtmlEventTable(getCommingWkEvents($dbConnection))."<p>",
'imgUrl' => "/ressourcen/graphiken/icons/terminKalender.svg",
'actions' => [
AppCardAction::fromArray(['caption'=>"Planer", 'link'=>"/pages/desktop/wkParticipo"]),
@@ -153,7 +237,7 @@ if( isUserAdmin($dbConnection, $userData['id']) ){
echo(
AppCard::fromArray([
'title' =>"lastLogins",
'description' => lastLoginTable()
'description' => "</p>".lastLoginTable()."</p>"
])->htmlCode()
);
}

View File

@@ -80,9 +80,9 @@ class AppCard{
"<div style=\"margin:1%;\" class=\"card blue-grey darken-1\">".
(($this->link!=null)?("<a href=\"".$this->link."\">"):(""))."<div class=\"card-content white-text\">".
"<span class=\"card-title\">".$this->title."</span>".
(($this->imgUrl!=null)?("<img style=\"display:block;margin-left:auto;margin-right:auto;max-height:10vh;\" class=\"responsive-img\" src=\"".$this->imgUrl."\" />"):("")).
(($this->imgUrl!=null)?("<img alt=\"".$this->title."\" style=\"display:block;margin-left:auto;margin-right:auto;max-height:10vh;\" class=\"responsive-img\" src=\"".$this->imgUrl."\" />"):("")).
"<p>".$this->description."</p>".
"</div>".(($this->link!=null)?("<a>"):("")).
"</div>".(($this->link!=null)?("</a>"):("")).
"<div class=\"card-action\">".$actionListCode."</div>".
"</div>".
"</div>";

View File

@@ -1,4 +1,5 @@
<?php
// workaround file: this should be the new location of the achievement system! Since i used incorrect links in a newsLetter for now it redirects to the login page.
session_start();
// Falls der serverseitige Logincookie nicht gesetzt ist,
// leite zur loginSeite weiter