From 4bf0b65088842cc43e14b3a4addd3a6b3432894b Mon Sep 17 00:00:00 2001 From: Cedric Abonnel Date: Wed, 13 May 2026 01:57:02 +0200 Subject: [PATCH] =?UTF-8?q?Fix:=20masquer=20les=20avant-premi=C3=A8res=20p?= =?UTF-8?q?our=20les=20visiteurs=20sans=20view=5Fpreviews?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Les articles en avant-première (published_at > now) s'affichaient dans la grille pour tous les visiteurs, occupant des slots de pagination sans être lisibles. Ils sont désormais filtrés côté serveur pour les utilisateurs sans la capability view_previews, cohérent avec le comportement déjà en place dans la recherche et les pages auteur. --- public/assets/js/admin.js | 10 ++++++++++ public/index.php | 3 +++ templates/admin.php | 6 +----- 3 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 public/assets/js/admin.js diff --git a/public/assets/js/admin.js b/public/assets/js/admin.js new file mode 100644 index 0000000..84ddcd8 --- /dev/null +++ b/public/assets/js/admin.js @@ -0,0 +1,10 @@ +document.addEventListener('DOMContentLoaded', function () { + var checkAll = document.getElementById('check-all'); + if (checkAll) { + checkAll.addEventListener('change', function () { + document.querySelectorAll('.bulk-check').forEach(function (cb) { + cb.checked = checkAll.checked; + }); + }); + } +}); diff --git a/public/index.php b/public/index.php index 1e5954a..e40a8ff 100644 --- a/public/index.php +++ b/public/index.php @@ -2463,6 +2463,9 @@ switch ($action) { if ($cat !== '' && in_array($cat, $privateCats, true) && !isLoggedIn()) { return false; } + if (strtotime((string)($a['published_at'] ?? '')) > time() && !hasCapability('view_previews')) { + return false; + } if ($filterCat !== '' && $cat !== $filterCat) { return false; } diff --git a/templates/admin.php b/templates/admin.php index fa5cef0..aadf105 100644 --- a/templates/admin.php +++ b/templates/admin.php @@ -214,11 +214,7 @@ function adminStatusBadge(array $a, int $now): string - +