| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?php
- /**
- * Front page editor: artist intro title/text + full-page hero image.
- */
- require dirname(__DIR__) . '/app/bootstrap.php';
- auth_require();
- $site = site_get();
- if ($_SERVER['REQUEST_METHOD'] === 'POST') {
- csrf_verify();
- $site['intro_title'] = trim((string)($_POST['intro_title'] ?? ''));
- $site['intro_text'] = trim((string)($_POST['intro_text'] ?? ''));
- if (!empty($_FILES['hero']['name'])) {
- $stored = media_store_upload($_FILES['hero']);
- if ($stored === null) {
- flash_set('Hero image upload failed — use a JPG/PNG/WebP/AVIF file.', 'error');
- site_save($site);
- redirect('frontpage.php');
- }
- if (!empty($site['hero_image'])) {
- media_delete($site['hero_image']);
- }
- $site['hero_image'] = $stored;
- }
- site_save($site);
- flash_set('Front page saved.');
- redirect('frontpage.php');
- }
- admin_header('Front page', 'frontpage');
- flash_render();
- ?>
- <h1>Front page</h1>
- <form method="post" enctype="multipart/form-data" class="card">
- <?= csrf_field() ?>
- <label for="t">Artist name / title</label>
- <input type="text" id="t" name="intro_title" value="<?= e($site['intro_title']) ?>">
- <label for="x">Introduction text</label>
- <textarea id="x" name="intro_text"><?= e($site['intro_text']) ?></textarea>
- <p class="help">Shown below the hero image. Line breaks are kept.</p>
- <label for="h">Hero image (full-page background)</label>
- <?php if (!empty($site['hero_image'])): ?>
- <p class="help" style="margin-bottom:.6rem">
- Current: <?= e($site['hero_image']) ?> —
- <a href="../media/<?= e(rawurlencode($site['hero_image'])) ?>" target="_blank" rel="noopener">view ↗</a>
- </p>
- <?php endif; ?>
- <input type="file" id="h" name="hero" accept="image/*">
- <p class="help">Uploaded in full resolution, unmodified. Choose a file to replace the current image.</p>
- <button type="submit">Save</button>
- </form>
- <?php admin_footer(); ?>
|