Updated the proostekrant to work properly again.

This commit is contained in:
douwe
2026-10-09 10:33:21 +02:00
parent 56d143b74b
commit 256a81a770
133 changed files with 10491 additions and 837 deletions
+192
View File
@@ -0,0 +1,192 @@
<?php
$page_title = 'Nieuw Artikel Indienen';
ob_start();
$users = $users ?? [];
$oldInput = $oldInput ?? [];
$errors = $errors ?? [];
$article = $article ?? null;
// If editing, populate old input from article
if ($article && empty($oldInput)) {
$oldInput = [
'title' => $article['title'],
'content' => $article['content'],
'writer' => $article['author_id'],
'event_date' => $article['event_date'],
'article_id' => $article['id']
];
// Parse participants
if (!empty($article['participants'])) {
$participantIds = explode(',', $article['participants']);
} else {
$participantIds = [];
}
}
// Get selected participants from old input
$selectedParticipants = [];
if (!empty($oldInput['participants'])) {
if (is_array($oldInput['participants'])) {
$selectedParticipants = $oldInput['participants'];
} else {
$selectedParticipants = [$oldInput['participants']];
}
} elseif (isset($participantIds)) {
$selectedParticipants = $participantIds;
}
// Check if we have an uploaded image in session or from old input
$uploadedImage = null;
if (isset($_SESSION['uploaded_image'])) {
$uploadedImage = $_SESSION['uploaded_image'];
unset($_SESSION['uploaded_image']);
} elseif ($article && $article['article_image']) {
$uploadedImage = $article['article_image'];
}
?>
<div class="article-form">
<div class="section-header">
<h2><?= $article ? 'Artikel Bewerken' : 'Nieuw Artikel Indienen' ?></h2>
<a href="/" class="btn btn-secondary btn-small">
<span class="icon">×</span> Annuleren
</a>
</div>
<form action="/submit/store" method="post" enctype="multipart/form-data">
<?php if ($article): ?>
<input type="hidden" name="article_id" value="<?= $article['id'] ?>">
<?php endif; ?>
<div class="form-row">
<div class="form-group">
<label for="title">Titel *</label>
<input type="text"
name="title"
id="title"
value="<?= htmlspecialchars($oldInput['title'] ?? '') ?>"
required
class="form-control <?= isset($errors['title']) ? 'error' : '' ?>"
placeholder="Voer de titel in">
<?php if (isset($errors['title'])): ?>
<span class="error-message"><?= htmlspecialchars($errors['title']) ?></span>
<?php endif; ?>
</div>
</div>
<div class="form-row">
<div class="form-group full-width">
<label for="content">Tekst *</label>
<textarea name="content"
id="content"
rows="8"
required
class="form-control <?= isset($errors['content']) ? 'error' : '' ?>"
placeholder="Schrijf hier de inhoud van je artikel..."><?= htmlspecialchars($oldInput['content'] ?? '') ?></textarea>
<?php if (isset($errors['content'])): ?>
<span class="error-message"><?= htmlspecialchars($errors['content']) ?></span>
<?php endif; ?>
</div>
</div>
<div class="form-row">
<div class="form-group">
<label for="writer">Schrijver *</label>
<select name="writer"
id="writer"
required
class="form-control <?= isset($errors['writer']) ? 'error' : '' ?>">
<option value="">-- Selecteer schrijver --</option>
<?php foreach ($users as $user): ?>
<option value="<?= $user['id'] ?>"
<?= (($oldInput['writer'] ?? '') == $user['id']) ? 'selected' : '' ?>>
<?= htmlspecialchars($user['display_name']) ?>
</option>
<?php endforeach; ?>
</select>
<?php if (isset($errors['writer'])): ?>
<span class="error-message"><?= htmlspecialchars($errors['writer']) ?></span>
<?php endif; ?>
</div>
<div class="form-group">
<label for="event_date">Datum van het evenement *</label>
<input type="date"
name="event_date"
id="event_date"
value="<?= htmlspecialchars($oldInput['event_date'] ?? date('Y-m-d')) ?>"
required
class="form-control">
</div>
</div>
<div class="form-row">
<div class="form-group full-width">
<label>Deelnemers *</label>
<p class="help-text">Selecteer alle personages die bij dit verhaal betrokken zijn.</p>
<div class="checkbox-group">
<?php foreach ($users as $user): ?>
<label class="checkbox-label">
<input type="checkbox"
name="participants[]"
value="<?= $user['id'] ?>"
<?= (in_array($user['id'], $selectedParticipants)) ? 'checked' : '' ?>>
<?= htmlspecialchars($user['display_name']) ?>
</label>
<?php endforeach; ?>
</div>
<p class="help-text">Selecteer minstens één deelnemer</p>
<?php if (isset($errors['participants'])): ?>
<span class="error-message"><?= htmlspecialchars($errors['participants']) ?></span>
<?php endif; ?>
</div>
</div>
<div class="form-row">
<div class="form-group full-width">
<label for="image">Afbeelding *</label>
<div class="file-upload-wrapper">
<input type="file"
name="image"
id="image"
accept="image/*"
required>
<label for="image" class="file-upload-label">
<span class="icon">📷</span> Kies een afbeelding
</label>
</div>
<p class="help-text file-upload-info">
Upload een foto bij het artikel. Zowel landscape als portret foto's worden ondersteund.
</p>
<?php if ($uploadedImage): ?>
<div class="image-preview mt-20">
<div class="image-preview-container">
<img src="/<?= htmlspecialchars($uploadedImage) ?>" alt="Geselecteerde afbeelding">
</div>
<p class="text-muted mt-10">Afbeelding succesvol geupload: <?= htmlspecialchars(basename($uploadedImage)) ?></p>
</div>
<?php endif; ?>
<?php if (isset($errors['image'])): ?>
<span class="error-message"><?= htmlspecialchars($errors['image']) ?></span>
<?php endif; ?>
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary">
<span class="icon"><?= $article ? '✓' : '+' ?></span>
<?= $article ? 'Artikel Bijwerken' : 'Artikel Indienen' ?>
</button>
<a href="/" class="btn btn-secondary">Annuleren</a>
</div>
</form>
</div>
<?php
$content = ob_get_clean();
require __DIR__ . '/../layouts/main.php';
?>