## 1.2.9 — 2026-08-09
- Profil public membre : annonces publiées et commentaires intégrés à l’historique d’activité (remplace la section séparée « Annonces publiées »).

## 1.2.8 — 2026-08-09
- Commentaires sur les annonces : nom de l’auteur cliquable vers son profil public (helpers CMS centralisés).

## 1.2.7 — 2026-08-09
- Fiche annonce : carte auteur (avatar, nom, lien vers profil public) + bouton « Modifier mon annonce » pour le propriétaire connecté.
- Profil public : liste des annonces publiées du membre (hook CMS `public_member_profile_html`).

## 1.2.6 — 2026-08-09
- Galerie photos : chargement JS fiabilisé (bootstrap en fin de DOM) — lightbox plein écran sur fiche annonce.
- CSS galerie renforcé contre les styles de thème importés (vignettes).

## 1.2.5 — 2026-08-09
- Immobilier : « Type d’offre » en sélection multiple (courte / moyenne / longue durée, camping, etc.) — une annonce peut combiner plusieurs modes.
- Rétrocompatible : anciennes annonces avec une seule valeur restent valides.

## 1.2.4 — 2026-08-09
- Photos : description FR/EN optionnelle par image à la publication / édition (formulaire, fiche publique, lightbox, aperçu modération).
- Stockage JSON enrichi `{url, caption_fr, caption_en}` — rétrocompatible avec l’ancien format (URLs seules).

## 1.2.3 — 2026-08-09
- Annonces publiées : modification par l’auteur avec re-modération (version en ligne inchangée jusqu’à approbation).
- Champ vidéo YouTube (optionnel) à la création / édition, lecteur intégré sur la fiche.
- Galerie photos : lightbox plein écran sur le site public (clic, flèches, Échap).

## 1.2.2 — 2026-08-09
- Intégration au système d’alertes CMS (`lw_flash_*`) — admin et public.
- Hub admin : messages via flash centralisé au lieu d’alertes inline dupliquées.

## 1.2.1 — 2026-08-09
- Modération admin : bouton « Réviser » ouvre un modal avec aperçu de l’annonce et actions Publier / Refuser / Supprimer (en haut et en bas).
- Refus : motif obligatoire, courriel à l’auteur avec lien pour corriger et resoumettre.
- Public : page « Corriger mon annonce » (`mes-annonces/modifier/{uid}`) pour les annonces refusées.
- Colonne `moderation_note` sur les annonces ; badges de statut colorés dans la liste admin.

## 1.2.0 — 2026-08-09
- Correction : sauvegarde annonce — requêtes SQL INSERT/UPDATE refaites (bind_param fiable, champs NULL).
- Photos : interface simplifiée sans URL — galerie visuelle avec supprimer, pivoter, réordonner (↑↓).
- Photos : champs cachés `image_urls[]` synchronisés automatiquement à la soumission.

## 1.1.9 — 2026-08-09
- Upload photo : redimensionnement/compression côté navigateur avant envoi (max 1920×1080), pour passer sous la limite PHP du serveur.
- Upload photo : message d’erreur distinct si la limite PHP (`upload_max_filesize`) est atteinte (au lieu d’afficher « 32 Mo » à tort).
- Site public : `.user.ini` / `.htaccess` — limites upload alignées sur l’admin (64M / 72M).

## 1.1.8 — 2026-08-09
- Correction : création d’annonce — INSERT SQL avec prix / date de publication NULL (PHP 7.2 / mysqli).
- Correction : après publication, redirection vers la fiche seulement si statut « publié » ; sinon message de succès sur le formulaire (modération).
- Fiche annonce : l’auteur peut prévisualiser sa propre annonce en attente de modération.

## 1.1.7 — 2026-08-09
- Correction : upload photo AJAX sur le site public (chargement automatique de la médiathèque core).

## 1.1.6 — 2026-08-09
- Suppression d’annonce : unlink des photos locales (uploads du site) + retrait de la médiathèque si enregistrées.

## 1.1.5 — 2026-08-09
- Jetons : formulaire embarqué {{classifieds:form}} avec classes CSS (:formclass:, :fieldclass:, :btnclass:…).
- Jetons : listes d’annonces et grilles catégories avec :ulclass:, :gridclass:, :itemclass: et formats ul/li/links.
- Jetons : {{classifieds:post_url}} / {{classifieds_new_ad_url}} (URL publier une annonce).
- Admin : catalogue des classes CSS avec bouton « Copier le jeton » en un clic.

## 1.1.4 — 2026-08-09
- Photos : redimensionnement automatique (max 1920×1080, proportions conservées) à l’upload.
- Téléversement AJAX photo par photo avec barre de progression (public + admin), au lieu d’un envoi groupé au submit.

## 1.1.3 — 2026-08-09
- Correction : sauvegarde catégorie (bind_param SQL INSERT/UPDATE après ajout ad_type / field_profile).

## 1.1.2 — 2026-08-09
- Catégories / sous-catégories : type d’annonce + profil de champs (ex. immo → chalet, camping, roulotte, chambre…).
- Formulaire de publication : champs filtrés selon la catégorie choisie ; héritage parent → enfant.
- Profils immobilier détaillés + profils véhicules (auto, moto, bateau, VR).

## 1.1.1 — 2026-08-09
- Immobilier : chalet, emplacement de camping, roulotte/VR ; location saisonnière et camping.
- Tarification location : nuit, semaine, mois, frais de ménage, draps, dépôt, invité supplémentaire, services inclus.
- Camping / VR : branchements, longueur max., surface, accès saisonnier, bord de l’eau, feux, type de roulotte, arrivée/départ.
- Commodités élargies (spa, BBQ, foyer, quai, ski, cuisine, etc.).

## 1.1.0 — 2026-08-09
- Types d’annonces activables par site (général, immobilier, véhicules, emplois, services, électronique, animaux, événements).
- Champs dynamiques par type (ex. immobilier : pi², chambres, salles de bain, meublé, stationnement, commodités, etc.).
- Formulaire public/admin : catégorie + sous-catégorie, photos multiples (URLs + téléversement), affichage des attributs sur la fiche annonce.
- Route `/annonces/nouveau` pour publier sans catégorie préalable dans l’URL.

## 1.0.15 — 2026-08-08
- Jetons arbre imbriqué catégories → sous-catégories (`:tree:ul`, `:tree:li`) ; `:subclass:`, `:subulclass:`, `:treeclass:` ; `:li:tree` reste liste plate.

## 1.0.14 — 2026-08-08
- Jetons liste : modificateurs `:class:` / `:allclass:` ; `data-value` auto (slug) ; entrée « Tous » avec `data-value` vide et `selected`.

## 1.0.13 — 2026-08-08
- Admin : documentation complète des jetons CMS (accordéon, FR/EN) ; source unique `includes/token_docs.php`.

## 1.0.12 — 2026-08-08
- Jetons `:li` / `:only:li` : catégories et sous-catégories sans &lt;ul&gt; ; arbre cat+subcat (`:li:tree`) ; legacy `subcatlist_li_catid_*`.

## 1.0.11 — 2026-08-08
- Jetons catégories / sous-catégories : format &lt;li&gt; seul, variantes avec ou sans lien (`:nolink`) ; attributs data-cat-id / data-cat-slug pour filtres recherche.

## 1.0.10 — 2026-08-08
- Jetons CMS : catégories / sous-catégories en format liste (&lt;ul&gt;&lt;li&gt;), liens &lt;a&gt; seuls, URL/titre unitaires ; option « Tous » pour menus type filtre.

## 1.0.9 — 2026-08-08
- Jetons CMS : listes catégories, sous-catégories, annonces par catégorie, récentes, mes annonces (+ alias legacy par id).

## 1.0.8 — 2026-08-08
- Catégories : illustration par icône Bootstrap ou image (FR/EN avec repli) ; affichage public et admin.

## 1.0.7 — 2026-08-08
- Paramètres : tri des catégories et des sous-catégories (manuel ou alphabétique), options indépendantes.

## 1.0.6 — 2026-08-08
- Ordre des catégories : sort_order indépendant par parent ; normalisation auto ; flèches ↑↓ fiables pour les sous-catégories.

## 1.0.5 — 2026-08-08
- Liste admin : sous-catégories affichées sous leur parent (arbre hiérarchique).

## 1.0.4 — 2026-08-08
- Catégories admin : flèches haut/bas pour réordonner (même niveau / même parent) ; ordre auto à la création.

## 1.0.3 — 2026-08-08
- Catégories admin : champ Slug EN (+ Description EN) ; réparation auto des slug_en vides en base.

## 1.0.2 — 2026-08-08
- CSS servi depuis `/extensions/plugins/classifieds/assets/` (suppression du miroir lw-admin/css).

## 1.0.1 — 2026-08-08
- Auteur courant : user_id renseigné depuis la session lw_users unifiée (plus lw_site_members).

## 1.0.0 — 2026-08-08
- Version initiale : catégories / sous-catégories, annonces, commentaires, notes, routes publiques /annonces/, jetons CMS, admin site, menu éditeur, intégration membres locaux et CDS.
