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
131 lines
3.3 KiB
PHP
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;
|
|
}
|