Files
cwsvJudo/homepage/participo/lib/participoLib/eventPage.php
marko f28fa7b51b WIP: bring participo back - consistent use of bootstrap - formatting -
phpstan level 0 error free - fixes for kyu subpage - move mams into
participo framework - remove legacy `lib/db.php` usage - add attributer
admin function - add newsposter - fixing apiKey creation
2025-11-19 12:24:38 +01:00

131 lines
3.3 KiB
PHP

<?php
require_once "participoLib/shiai.php";
class EventPage
{
public function __construct($eventId = null)
{
$this->eventId = filterId($eventId);
}
public function init()
{
$params = participo::parseParams([
"eventId" => function ($param) {
return filterId($param);
},
]);
$this->eventId = $params["eventId"];
return;
}
public function getHtmlNotFound()
{
return '<div>Der Event "' .
$this->eventId .
'" existiert leider nicht!</div>' .
"<h2>Anstehende Termine</h2>" .
eventPlaner::getHtmlEventTable(eventPlaner::getComingWkEvents());
}
public function getHtml()
{
if (!$this->event()) {
return $this->getHtmlNotFound();
}
$html = "";
$html .=
"<div>" .
"<dl>" .
"<dt>Termine</dt>" .
'<dd>
<dl>' .
"<dt>Datum</dt><dd>" .
$this->event()->htmlDate() .
"</dd>" .
"<dt>Deadline zum Einschreiben:</dt><dd>" .
$this->event()->htmlDeadline() .
"</dd>" .
"</dl>";
// Not all Events have a shiai linked to them
if ($this->event()->shiai()) {
$html .=
"<dt>Wettkampfdetails</dt><dd>" .
$this->event()->shiai()->getHtmlDetails() .
"</dd>";
}
$html .=
"<dt>Einschreibungen</dt><dd>" .
$this->event()->getHtmlStarterStatistic() .
"</dd>" .
"<dt>Eigene, gemeldete Starter</dt><dd>" .
$this->event()->getHtmlStarterList() .
"</dd>" .
"</dl>" .
"</div>";
$html .= "<div>";
foreach (
$this->event()->shiai()->ageGroups()
as $ageClass => $starterList
) {
$html .=
"<dl>" .
"<dt>" .
(!empty($ageClass)
? AgeGroup::create($ageClass)
: "keiner Altersklasse zugeordnet") .
"</dt>" .
'<dd>
<ul>';
foreach ($starterList as $starter) {
if (
!array_key_exists(
$starter->getId(),
$this->event()->getStarter(),
)
) {
$html .=
"<li>" .
$starter->getName() .
", " .
$starter->getFirstname() .
" - " .
$starter->yearOfBirth() .
" " .
$this->event()->getHtmlAddStarterForm($starter) .
'
</li>';
}
}
$html .= '
</dd>
</ul>';
}
$html .= "</div>";
return $html;
}
public function html()
{
echo $this->getHtml();
}
private function event(bool $forceLoading = false)
{
if (!$this->event || $forceLoading) {
$this->event = Event::loadFromDb($this->eventId);
}
return $this->event;
}
private $eventId = null;
private $event = null;
}