133 lines
3.3 KiB
PHP
133 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->id .
|
|
'" 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() .
|
|
'
|
|
</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;
|
|
}
|