fhytr
UPDATE articles
SET status = 'published'
WHERE status IS NULL OR status = '' OR status IN ('draft', 'archived', 'active', 'inactive');
UPDATE articles
SET published_at = COALESCE(published_at, created_at, NOW())
WHERE published_at IS NULL;
ALTER TABLE articles
MODIFY COLUMN status ENUM('published') NOT NULL DEFAULT 'published';
SET status = 'published'
WHERE status IS NULL OR status = '' OR status IN ('draft', 'archived', 'active', 'inactive');
UPDATE articles
SET published_at = COALESCE(published_at, created_at, NOW())
WHERE published_at IS NULL;
ALTER TABLE articles
MODIFY COLUMN status ENUM('published') NOT NULL DEFAULT 'published';
Bug confirmé: les articles n’apparaissent pas sur le front car status reste à 'draft'.
Preuve:
SELECT id,title,slug,status,published_at,created_at FROM articles ORDER BY id DESC LIMIT 3;
=> status = 'draft' sur l’article créé.
Règle métier:
Articles = toujours publiés (comme legal_texts).
Tâches:
1) Corriger admin/articles/create.php:
- Forcer status='published' à l’INSERT (ou supprimer la notion de statut mais garantir une valeur published).
- Ne jamais écrire 'draft'.
2) Corriger admin/articles/edit.php:
- Forcer status='published' à l’UPDATE (ou garantir published).
3) Vérifier public/blog.php:
- Si la requête filtre sur status='published', elle doit rester cohérente.
4) Fournir une migration SQL qui:
- met à jour tous les anciens 'draft' en 'published'
- verrouille status en ENUM('published') default 'published'
5) Livrer checklist test:
- créer article -> DB status='published' -> visible immédiatement sur blog.php