88 lines
3.8 KiB
PHP
88 lines
3.8 KiB
PHP
<?php
|
|
ob_start();
|
|
$existingFiles = $articles->getFiles($addFilesArticle['uuid']);
|
|
?>
|
|
|
|
<div class="d-flex align-items-center gap-3 mb-4">
|
|
<a href="/edit/<?= rawurlencode($addFilesArticle['uuid']) ?>" class="btn btn-secondary btn-sm">← Retour</a>
|
|
<h1 class="h4 mb-0">Ajouter des fichiers</h1>
|
|
</div>
|
|
|
|
<p class="text-muted small mb-4">
|
|
Article : <strong><?= htmlspecialchars($addFilesArticle['title']) ?></strong>
|
|
</p>
|
|
|
|
<div class="row g-4">
|
|
|
|
<!-- Formulaire d'upload -->
|
|
<div class="col-lg-5">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<form method="POST"
|
|
action="/files/<?= rawurlencode($addFilesArticle['uuid']) ?>/add"
|
|
enctype="multipart/form-data">
|
|
|
|
<div class="mb-3">
|
|
<label for="files" class="form-label fw-semibold">Fichiers à uploader</label>
|
|
<input type="file" class="form-control" id="files" name="files[]"
|
|
multiple required>
|
|
<div class="form-text">
|
|
Images → nommées <code>sha256-taille.ext</code><br>
|
|
Vidéos, PDF, autres → nom sanitisé
|
|
</div>
|
|
</div>
|
|
|
|
<div class="d-flex gap-2">
|
|
<button type="submit" class="btn btn-primary">Uploader</button>
|
|
<a href="/edit/<?= rawurlencode($addFilesArticle['uuid']) ?>"
|
|
class="btn btn-outline-secondary">Annuler</a>
|
|
</div>
|
|
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Fichiers déjà présents -->
|
|
<?php if ($existingFiles): ?>
|
|
<div class="col-lg-7">
|
|
<h5 class="mb-3">Fichiers existants</h5>
|
|
<div class="list-group">
|
|
<?php foreach ($existingFiles as $f): ?>
|
|
<?php $fileUrl = '/file?uuid=' . rawurlencode($addFilesArticle['uuid']) . '&name=' . rawurlencode($f['name']); ?>
|
|
<div class="list-group-item d-flex align-items-center gap-3 py-2">
|
|
<?php if ($f['is_image']): ?>
|
|
<a href="<?= htmlspecialchars($fileUrl) ?>" target="_blank" rel="noopener" class="flex-shrink-0">
|
|
<img src="<?= htmlspecialchars($fileUrl) ?>" alt=""
|
|
style="width:48px;height:48px;object-fit:cover;border-radius:4px">
|
|
</a>
|
|
<?php else: ?>
|
|
<span style="width:48px;text-align:center;font-size:1.5rem;flex-shrink:0">
|
|
<?= match(true) {
|
|
str_starts_with($f['mime'], 'video/') => '🎬',
|
|
str_starts_with($f['mime'], 'audio/') => '🎵',
|
|
$f['mime'] === 'application/pdf' => '📑',
|
|
default => '📄',
|
|
} ?>
|
|
</span>
|
|
<?php endif; ?>
|
|
<div class="flex-grow-1 overflow-hidden">
|
|
<code class="d-block small text-truncate"><?= htmlspecialchars($f['name']) ?></code>
|
|
<small class="text-muted"><?= number_format($f['size'] / 1024, 1) ?> Ko</small>
|
|
</div>
|
|
<?php if ($addFilesArticle['cover'] ?? '' === $f['name']): ?>
|
|
<span class="badge bg-primary flex-shrink-0">cover</span>
|
|
<?php endif; ?>
|
|
</div>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
</div>
|
|
<?php endif; ?>
|
|
|
|
</div>
|
|
|
|
<?php
|
|
$content = ob_get_clean();
|
|
$title = 'Ajouter des fichiers — ' . htmlspecialchars($addFilesArticle['title']);
|
|
include __DIR__ . '/layout.php';
|