diff --git a/homepage/participo/attendance.php b/homepage/participo/attendance.php new file mode 100644 index 0000000..def7efb --- /dev/null +++ b/homepage/participo/attendance.php @@ -0,0 +1,213 @@ +id = (int)$id; + $this->userId = (int)$userId; + $this->date = DateTime::createFromFormat("Y-m-d", $date); + } + /** + * create an Attendance from an assoziative array + * + * @param array $member + * @return Attendance + */ + static function constructFromArray($member){ + return new Attendance($member['id'], $member['userId'], $member['date']); + } + /** + * request a users attendances from the database + * + * @param PDO $db + * @param int/string $userId + * @return array with attendances + */ + static function getUsersAttendance($db, $userId){ + $userId = (int)$userId; + $query = "SELECT `id`, `date` FROM `cwsvjudo`.`anwesenheit` WHERE `userId` = :userId"; + $response = dbQuery($db, $query, [':userId'=>['value'=>$userId, 'data_type'=>PDO::PARAM_INT]]); + $attendances = []; + foreach($response as $r){ + $attendances[] = new Attendance($r['id'], $userId, $r['date']); + } + return $attendances; + } + /** + * html table with users attendances + * + * @param PDO $db + * @param string/int $userId + * @return string with html code of the attendance table + */ + static function userAttendanceHtmlTable($db, $userId){ + $htmlTableString = ""; + $htmlTableString .= ""; + + return $htmlTableString; + } + static function groupAttendances($attendances){ + $groupedAttendances = []; + foreach($attendances as $a){ + $year = $a->date->format("Y"); + if(!array_key_exists($year, $groupedAttendances)) + $groupedAttendances[$year] = []; + $month = $a->date->format("m"); + if(!array_key_exists($month, $groupedAttendances[$year])) + $groupedAttendances[$year][$month] = []; + $day = $a->date->format("d"); + $groupedAttendances[$year][$month][]=$day; + } + return $groupedAttendances; + } + } + +?> + + + + + + + + + + + + participo + + + + + + + + +
+ + +
+ + +
+Eigene Anwesenheiten". + Attendance::userAttendanceHtmlTable($dbConnection, $userData['id']) + ); require_once("./lib/participoLib/participo.php"); + + } + // ... and kids attendances + if (!empty($usersKids)){ + echo("

Anwesenheit der Kinder

"); + foreach($usersKids as $k){ + if($userData['id']==$k['kidId']) continue; + echo( + "

".$k['vorname']." ".$k['name']."

". + Attendance::userAttendanceHtmlTable($dbConnection, $k['kidId']) + ); + } + } +?> +
+ + + diff --git a/homepage/participo/attendence.php b/homepage/participo/attendence.php deleted file mode 100644 index def6ef2..0000000 --- a/homepage/participo/attendence.php +++ /dev/null @@ -1,242 +0,0 @@ -= 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 = ""; - foreach($eventList as $event){ - $e = json_decode($event['bemerkungen'], true); - $e = (($e==null)?$event:$e); - $e['id']=$event['id']; - $ret .= ""; - } - $ret .= "
".$e['Datum']."".$e['Veranstaltung']."
"; - return $ret; -} -?> - - - - - - - - - - - - participo - - - - - - - - -
- - -
- - -
- -
- "kyu", - 'title' => "Kyu", - 'description'=> "Die Prüfungsprogamme der einzelnen Gürtelstufen in Bild, Ton und Text", - 'imgUrl' => "images/obi.svg", - 'actions' => [ - AppCardAction::fromArray(['caption'=>"Kyu-Programme", 'link'=>"kyu"]), - ], - ])->htmlCode(). - AppCard::fromArray([ - 'link' => "/machs", - 'title' => "Mein Achievement System", - 'description'=> "Ein kleines Achievementsystem für die tägliche Herausforderung", - 'imgUrl' => "images/mountain-climber.svg", - 'actions' => [ - AppCardAction::fromArray(['caption'=>"MAchS", 'link'=>"/machs"]), - ], - ])->htmlCode(). - AppCard::fromArray([ - 'link' => "/pages/desktop/wkParticipo", - 'title' => "Event-Planer", - 'description'=> "Organisieren der Teilnahmen (und nicht-Teilnahmen) an Wettkämpfen, Sondertrainingseinheiten, Feiern etc.

".getHtmlEventTable(getCommingWkEvents($dbConnection))."

", - 'imgUrl' => "/ressourcen/graphiken/icons/terminKalender.svg", - 'actions' => [ - AppCardAction::fromArray(['caption'=>"Planer", 'link'=>"/pages/desktop/wkParticipo"]), - ], - ])->htmlCode(). - AppCard::fromArray([ - 'link' => "infoZettel", - 'title' => "Infozettel", - 'description'=> "Online-Variante der Infozettel und Newsletter", - 'imgUrl' => "images/info.svg", - 'actions' => [ - AppCardAction::fromArray(['caption'=>"Info", 'link'=>"infoZettel"]), - ], - ])->htmlCode() -); -?> -

- -
- - -
- "user", - 'title' => "User-Config", - 'description' => "Einstellungen zum aktuellen Benutzer dessen Kindern", - 'imgUrl' => "images/account.svg", - 'actions' => [ - AppCardAction::fromArray(['caption'=>"Config", 'link'=>"user"]), - ], - ])->htmlCode() -); -// AdminStuff, thats only visible for Admins -if( isUserAdmin($dbConnection, $userData['id']) ){ - echo( - AppCard::fromArray([ - 'title' =>"lastLogins", - 'description' => "

".lastLoginTable()."

" - ])->htmlCode() - ); -} -?> -
-
- - -