kurs-app/Views/User/showAdminForm.phtml
2025-07-10 10:58:11 +02:00

117 lines
4.1 KiB
PHTML

<h2>Neuer Kurs</h2>
<form method="post">
<?php
$userModel = new \Blog\Model\UserModel();
$courses = $userModel->getMyCourses();
$id = $_GET["id"] ?? null;
$selectedCourse = null;
foreach ($courses as $course) {
if ($course['id'] === $id) {
$selectedCourse = $course;
break;
}
}
$validData = $selectedCourse ?? null;
$isEditing = $validData != null;
$saveLabel = $isEditing ? "Speichern" : "Erstellen";
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($label === "|") {
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="user">
<?php
$action = $isEditing ? 'validateEditKursForm' : 'validateKursForm';
echo <<<HTML
<input type="hidden" name="do" value="{$action}">
<div class="form-grid-3" style="margin-top: 16px;">
<input style="grid-column: 3;" type="submit" name="submit" value="{$saveLabel}">
</div>
HTML;
?>
</form>
<?php
$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);
$editLink = $doc->createElement('a', "Bearbeiten");
$editLink->setAttribute('href', '?controller=User&do=showUserAccountPage&id=' . $kurs['id']);
$editLink->setAttribute('class', 'course-card-link');
$courseRight->appendChild($editLink);
echo $doc->saveHTML($courseCard);
}
echo '</div>';
} else {
echo '<p>Keine Kurse gefunden.</p>';
}
?>