# Module « Actualités » — Arc de Vie

Un mini-blog **PHP + SQLite**, sans serveur de base de données à configurer.
Pensé pour l'hébergement mutualisé OVH et déployé par FTP comme le reste du site.
Design et accessibilité identiques au site (grande typo, contrastes, public malvoyant).

## Adresses

| Page | Adresse (nouvelle version) | Adresse (site officiel) |
|---|---|---|
| Actualités (public) | `https://www.arcdevie.fr/nouveau/actualites/` | `https://www.arcdevie.fr/actualites/` |
| Espace de rédaction | `…/actualites/admin/` | `…/actualites/admin/` |
| Flux RSS | `…/actualites/rss.php` | `…/actualites/rss.php` |

## Première connexion

- **E-mail :** `maximebonnet54@gmail.com`
- **Mot de passe :** `admin`

> ⚠️ **À faire tout de suite :** changez ce mot de passe depuis
> **Comptes → Mon mot de passe**. Un bandeau le rappelle tant que le mot de
> passe par défaut est actif.

## Ajouter le compte de la cliente

Espace de rédaction → **Comptes** → *Ajouter un compte* (nom, e-mail, mot de
passe). Elle pourra ensuite modifier son mot de passe elle-même.

## Ce que permet l'espace de rédaction

- Écrire des articles avec un **éditeur visuel** (gras, titres, listes, citations,
  liens) et **insérer des images** directement dans le texte.
- **Image de couverture** avec description (lue par les lecteurs d'écran).
- **Brouillon / Publié** et **publication programmée** (date future).
- **Résumé** automatique (ou personnalisé) pour la liste et le partage.
- Gestion des **comptes** de rédaction.
- **SEO** : titres, méta-description, Open Graph, URL propres, flux RSS.

## Où sont stockées les données

La base SQLite et les images envoyées vivent dans **`www/actualites-data/`**,
créé automatiquement au premier lancement, **en dehors de `/nouveau/`**.

C'est volontaire : la « Nouvelle version du site » republie `/nouveau/` avec un
miroir FTP `--delete` qui remet ce dossier à l'identique du dépôt. Si les
données y étaient, elles seraient **effacées à chaque publication**. En les
plaçant à la racine du site, elles **survivent** aux republications — et restent
partagées si le site passe un jour de `/nouveau/actualites/` à `/actualites/`.

- `actualites-data/db/news.sqlite` — la base (protégée du web par `.htaccess`).
- `actualites-data/uploads/` — les images (aucun script n'y est exécutable).

> Ces dossiers ne sont **pas** dans le dépôt Git (voir `.gitignore`) : ils
> appartiennent au serveur. Pour une **sauvegarde**, téléchargez
> `actualites-data/` par FTP.

## Sécurité

Mots de passe hachés (bcrypt), sessions durcies (cookie httponly/SameSite),
jetons CSRF sur chaque formulaire, requêtes SQL préparées, HTML des articles
nettoyé par liste blanche (pas de `<script>`), envois d'images vérifiés
(vrai type d'image + taille), base inaccessible depuis le web.

## Passer plus tard à une « vraie » base (MySQL)

Le code isole l'accès aux données dans `inc/db.php`. Pour migrer vers MySQL
(disponible chez OVH), il suffira de remplacer la connexion PDO SQLite par une
connexion PDO MySQL et d'adapter les quelques types de colonnes ; le reste du
code (requêtes préparées) reste identique.

## Pré-requis hébergement

PHP 8+ avec `pdo_sqlite` (activé par défaut chez OVH). Le module a été testé
sur PHP 8.4.
