pagination curseur, layout 3 colonnes article, sidebar fixe

This commit is contained in:
Cedric Abonnel
2026-05-12 00:42:51 +02:00
parent d774042be9
commit be09fad48f
91 changed files with 8152 additions and 816 deletions
+87
View File
@@ -0,0 +1,87 @@
<?php
ob_start();
$existingFiles = $articles->getFiles($addFilesArticle['uuid']);
?>
<div class="d-flex align-items-center gap-3 mb-4">
<a href="/?action=edit&uuid=<?= 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="/?action=add_files&uuid=<?= rawurlencode($addFilesArticle['uuid']) ?>"
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="/?action=edit&uuid=<?= 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';