Page admin/tags : gestion des valeurs par type + couleurs Atari/Amstrad #55

Closed
opened 2026-05-13 21:22:46 +00:00 by cedricAbonnel · 2 comments
Owner

Contexte

Il n'existe pas de page dédiée à la gestion des valeurs de tags. Les tags se gèrent uniquement par article via /edit/{uuid}/tags/{type}. Il est impossible de renommer ou supprimer une valeur dans l'ensemble du blog, ni d'associer une couleur à un tag.

La page /admin/tags n'existe pas encore (URL actuellement non routée).

Comportement souhaité

1. Page /admin/tags

Créer une page dédiée avec :

  • Sélecteur de type de tag (dropdown ou onglets) listant tous les types définis (ex : Logiciels, Matériel…).
  • Pour le type sélectionné, liste de toutes les valeurs distinctes utilisées dans les articles, avec pour chacune :
    • Le nombre d'articles qui l'utilisent.
    • Un champ pour la renommer (propagé à tous les articles concernés).
    • Un bouton Supprimer (retire ce tag de tous les articles concernés).
    • Un sélecteur de couleur optionnel parmi la palette de 16 couleurs (voir §2).

2. Palette de couleurs — référence Atari/Amstrad

Les couleurs des tags feront référence aux 16 couleurs des ordinateurs Atari ST / Amstrad CPC (palette rétro à définir avec le client — remplacera ou complètera COLOR_PALETTE_16 dans helpers.php).

  • La couleur est optionnelle : un tag sans couleur assignée s'affiche avec le style par défaut.
  • La couleur choisie s'affiche en chip/badge sur le tag dans les vues publiques et dans l'admin.
  • Les couleurs sont stockées dans un fichier data/tag_colors.json de la forme {"type": {"valeur": 3}} (index 0–15 dans la palette).

3. Affichage public

Quand un tag possède une couleur, l'afficher en conséquence dans post_view.php et partout où les tags sont rendus.

Fichiers concernés

  • src/ArticleManager.php — ajouter renameTagValue(type, old, new), deleteTagValue(type, value), getTagColors(), saveTagColor(type, value, colorIndex|null)
  • public/index.php — ajouter les cases rename_tag_value, delete_tag_value, save_tag_color et la route admin/tags
  • templates/admin_tags.php — nouveau template (page admin/tags)
  • src/helpers.php — confirmer ou remplacer COLOR_PALETTE_16 avec la palette Atari/Amstrad exacte
  • templates/post_view.php — utiliser la couleur du tag si définie

Point ouvert

Quelle est la palette exacte souhaitée : Atari ST 16 couleurs, Amstrad CPC, ou CGA ? À confirmer pour finaliser COLOR_PALETTE_16.

## Contexte Il n'existe pas de page dédiée à la gestion des **valeurs de tags**. Les tags se gèrent uniquement par article via `/edit/{uuid}/tags/{type}`. Il est impossible de renommer ou supprimer une valeur dans l'ensemble du blog, ni d'associer une couleur à un tag. La page `/admin/tags` n'existe pas encore (URL actuellement non routée). ## Comportement souhaité ### 1. Page `/admin/tags` Créer une page dédiée avec : - **Sélecteur de type de tag** (dropdown ou onglets) listant tous les types définis (ex : Logiciels, Matériel…). - Pour le type sélectionné, **liste de toutes les valeurs distinctes** utilisées dans les articles, avec pour chacune : - Le nombre d'articles qui l'utilisent. - Un champ pour la **renommer** (propagé à tous les articles concernés). - Un bouton **Supprimer** (retire ce tag de tous les articles concernés). - Un sélecteur de **couleur optionnel** parmi la palette de 16 couleurs (voir §2). ### 2. Palette de couleurs — référence Atari/Amstrad Les couleurs des tags feront référence aux **16 couleurs des ordinateurs Atari ST / Amstrad CPC** (palette rétro à définir avec le client — remplacera ou complètera `COLOR_PALETTE_16` dans `helpers.php`). - La couleur est **optionnelle** : un tag sans couleur assignée s'affiche avec le style par défaut. - La couleur choisie s'affiche en chip/badge sur le tag dans les vues publiques et dans l'admin. - Les couleurs sont stockées dans un fichier `data/tag_colors.json` de la forme `{"type": {"valeur": 3}}` (index 0–15 dans la palette). ### 3. Affichage public Quand un tag possède une couleur, l'afficher en conséquence dans `post_view.php` et partout où les tags sont rendus. ## Fichiers concernés - `src/ArticleManager.php` — ajouter `renameTagValue(type, old, new)`, `deleteTagValue(type, value)`, `getTagColors()`, `saveTagColor(type, value, colorIndex|null)` - `public/index.php` — ajouter les cases `rename_tag_value`, `delete_tag_value`, `save_tag_color` et la route `admin/tags` - `templates/admin_tags.php` — nouveau template (page admin/tags) - `src/helpers.php` — confirmer ou remplacer `COLOR_PALETTE_16` avec la palette Atari/Amstrad exacte - `templates/post_view.php` — utiliser la couleur du tag si définie ## Point ouvert Quelle est la palette exacte souhaitée : Atari ST 16 couleurs, Amstrad CPC, ou CGA ? À confirmer pour finaliser `COLOR_PALETTE_16`.
Author
Owner

Palette retenue : CGA 16 couleurs

La palette de référence est la CGA standard (IBM Color Graphics Adapter, 1981).

Index Nom Hex
0 Black #000000
1 Blue #0000AA
2 Green #00AA00
3 Cyan #00AAAA
4 Red #AA0000
5 Magenta #AA00AA
6 Brown #AA5500
7 Light Gray #AAAAAA
8 Dark Gray #555555
9 Light Blue #5555FF
10 Light Green #55FF55
11 Light Cyan #55FFFF
12 Light Red #FF5555
13 Light Magenta #FF55FF
14 Yellow #FFFF55
15 White #FFFFFF

Ces valeurs remplaceront COLOR_PALETTE_16 dans src/helpers.php. Point ouvert résolu.

## Palette retenue : CGA 16 couleurs La palette de référence est la CGA standard (IBM Color Graphics Adapter, 1981). | Index | Nom | Hex | |-------|-----|-----| | 0 | Black | `#000000` | | 1 | Blue | `#0000AA` | | 2 | Green | `#00AA00` | | 3 | Cyan | `#00AAAA` | | 4 | Red | `#AA0000` | | 5 | Magenta | `#AA00AA` | | 6 | Brown | `#AA5500` | | 7 | Light Gray | `#AAAAAA` | | 8 | Dark Gray | `#555555` | | 9 | Light Blue | `#5555FF` | | 10 | Light Green | `#55FF55` | | 11 | Light Cyan | `#55FFFF` | | 12 | Light Red | `#FF5555` | | 13 | Light Magenta | `#FF55FF` | | 14 | Yellow | `#FFFF55` | | 15 | White | `#FFFFFF` | Ces valeurs remplaceront `COLOR_PALETTE_16` dans `src/helpers.php`. Point ouvert résolu.
Author
Owner

Ticket migré vers le dépôt Folio : cedricAbonnel/folio#40

Ticket migré vers le dépôt Folio : https://git.abonnel.fr/cedricAbonnel/folio/issues/40
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: cedricAbonnel/varlog#55