pagination curseur, layout 3 colonnes article, sidebar fixe
This commit is contained in:
@@ -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';
|
||||
Reference in New Issue
Block a user