Visibilité par article (masqué/visible) — supprimer les catégories privées #54
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Actuellement, la notion de "privé/public" est portée par la catégorie : un fichier
data/private_cats.jsonliste les catégories dont tous les articles sont cachés aux visiteurs anonymes. Le toggle "🔒 Privée / Publique" apparaît sur chaque ligne de/admin/categories.Ce modèle est inadapté : la visibilité est une propriété de l'article, pas de la catégorie. Une catégorie n'est qu'une étiquette de classement.
Comportement souhaité
hiddendans sonmeta.json.in_array($cat, $privateCats)sont remplacés par$article['hidden'] ?? false.Changements UI
/admin/categories: supprimer le bouton toggle Privée/Publique de chaque ligne.post_form.php) : ajouter un toggle Masqué/Visible (en plus du toggle Publié/Brouillon).Migration des données
À l'activation, parcourir tous les articles dont la catégorie est dans
private_cats.jsonet leur écrire"hidden": truedansmeta.json. Supprimer ensuiteprivate_cats.json.Un script de migration one-shot suffit (pas besoin de compatibilité descendante).
Fichiers concernés
src/ArticleManager.php— supprimergetPrivateCategories(),togglePrivateCategory(); ajoutersetHidden(string $uuid, bool $hidden); inclurehiddendansloadAll()public/index.php— remplacer toutes les occurrences deprivateCatspar le filtrehidden; supprimer les casestoggle_private_categorytemplates/categories.php— supprimer le formulaire toggletemplates/post_form.php— ajouter le toggle masqué/visibletemplates/admin.php— badge et filtre masquéscripts/Ticket migré vers le dépôt Folio : cedricAbonnel/folio#39