kurs-app/Views/Admin/showAdminForm.phtml
2025-07-04 16:52:46 +02:00

99 lines
3.5 KiB
PHTML

<?php
include dirname(__DIR__).'/header.phtml';
?>
<h2>Neuer Kurs</h2>
<form method="post">
<?php
function createInputField($label, $name, $errors, $validData, $type = 'input') {
$errorClass = isset($errors[$name]) ? 'error' : '';
$value = htmlspecialchars($validData[$name] ?? '');
$errorMessage = isset($errors[$name]) ? '<p class="error">' . htmlspecialchars($errors[$name]) . '</p>' : '';
if($type === 'textarea') {
return <<<HTML
<div style="grid-column: 1 / -1;" class="input">
<label for="{$name}">{$label}</label>
<textarea class="{$errorClass}" name="{$name}">{$value}</textarea>
{$errorMessage}
</div>
HTML;
}
return <<<HTML
<div class="input">
<label for="{$name}">{$label}</label>
<input class="{$errorClass}" type="text" name="{$name}" value="{$value}">
{$errorMessage}
</div>
HTML;
}
echo '<div style="margin-top: 32px;" class="form-grid-3">';
foreach ($labels as $name => $label) {
if($name === "|") {
echo '</div>';
echo '<div style="margin-top: 32px;" class="form-grid-3">';
} else {
echo createInputField($label, $name, $errors, $validData, $type = $name === 'beschreibung' ? 'textarea' : 'input');
}
}
echo '</div>';
?>
<input type="hidden" name="controller" value="admin">
<input type="hidden" name="do" value="validateForm">
<div class="form-grid-3" style="margin-top: 16px;">
<input style="grid-column: 3;" type="submit" name="submit" value="Absenden">
</div>
</form>
<?php
$adminModel = new \Blog\Model\AdminModel();
$courses = $adminModel->getMyCourses();
$doc = new DOMDocument('1.0', 'UTF-8');
if (!empty($courses)) {
echo '<div class="courses-view">';
foreach ($courses as $kurs) {
$courseCard = $doc->createElement('div');
$courseCard->setAttribute('class', 'course-card');
$courseImage = $doc->createElement('div');
$courseImage->setAttribute('class', 'course-image');
$courseCard->appendChild($courseImage);
$courseContent = $doc->createElement('div');
$courseContent->setAttribute('class', 'course-content');
$courseCard->appendChild($courseContent);
$courseLeft = $doc->createElement('div');
$courseLeft->setAttribute('class', 'course-left');
$courseContent->appendChild($courseLeft);
$note = $doc->createElement('div', htmlspecialchars($kurs['note'] ?? 'Keine Bewertung') . ' ★');
$courseLeft->appendChild($note);
$name = $doc->createElement('div', htmlspecialchars($kurs['name']));
$courseLeft->appendChild($name);
$address = $doc->createElement('div', htmlspecialchars($kurs['strasse'] . ', ' . $kurs['stadt'] . ' ' . $kurs['plz']));
$courseLeft->appendChild($address);
$courseRight = $doc->createElement('div');
$courseRight->setAttribute('class', 'course-right');
$courseContent->appendChild($courseRight);
$price = $doc->createElement('div', htmlspecialchars($kurs['preis']) . ' €');
$courseRight->appendChild($price);
$category = $doc->createElement('div', htmlspecialchars($kurs['kategorie'] ?? 'Keine Kategorie'));
$courseRight->appendChild($category);
echo $doc->saveHTML($courseCard);
}
echo '</div>';
} else {
echo '<p>Keine Kurse gefunden.</p>';
}
?>
<?php include dirname(__DIR__).'/footer.phtml'; ?>