12 Commits

Author SHA1 Message Date
Cedric Abonnel 26ada9b54e Feat: onglet SMTP dans l'administration
- Formulaire d'édition des paramètres SMTP (serveur, port, chiffrement,
  utilisateur, mot de passe, expéditeur) stockés dans data/smtp_settings.json
  (écrit par www-data, contrairement au .env en lecture seule)
- Test de connexion SMTP avec logs PHPMailer complets (DEBUG_SERVER)
- Envoi d'email de test avec contenu personnalisé anti-spam
- src/SmtpSettings.php : lecture/écriture smtp_settings.json avec fallback env()
- mailer.php : lit les paramètres depuis SmtpSettings en priorité
- admin.js : indicateurs spinner sur les boutons pendant le traitement
2026-05-13 10:53:03 +02:00
Cedric Abonnel 4bf0b65088 Fix: masquer les avant-premières pour les visiteurs sans view_previews
Les articles en avant-première (published_at > now) s'affichaient dans
la grille pour tous les visiteurs, occupant des slots de pagination sans
être lisibles. Ils sont désormais filtrés côté serveur pour les
utilisateurs sans la capability view_previews, cohérent avec le
comportement déjà en place dans la recherche et les pages auteur.
2026-05-13 01:57:02 +02:00
Cedric Abonnel 78d6c656be feat: déplacer 'À lire aussi' après les réactions dans la colonne principale 2026-05-13 01:32:03 +02:00
Cedric Abonnel a926e1825d feat: filtres et suppression massive dans admin/articles, profil auteur amélioré
- Admin articles : filtres auteur/catégorie/statut par GET, compteur de résultats
- Admin articles : suppression massive avec checkboxes, confirmation JS, contrôle d'ownership
- Profil auteur : bio tronquée à 3 lignes avec bouton 'plus', limite à 6 articles affichés
- Profil auteur : bouton CTA pill 'Mes liens' vers /liens/{slug}
- Page liens : boutons pill colorés (palette auto par index), fond gris clair, grand avatar
2026-05-13 00:57:02 +02:00
Cedric Abonnel f3584159c1 admin/site: retirer site_author, publisher=Blog, auteur depuis profil utilisateur 2026-05-13 00:27:12 +02:00
Cedric Abonnel 26c0a03e71 factorisation: site_lang, posts_per_page, site_license, contact dynamique 2026-05-13 00:23:09 +02:00
Cedric Abonnel 6b32eccebe feat: meta author + site_author configurable depuis /admin/site 2026-05-12 23:40:21 +02:00
Cedric Abonnel b81750616f feat: titre et claim configurables depuis l'admin 2026-05-12 22:30:00 +02:00
Cedric Abonnel 6e438835f8 nuage de tags sur la liste, suppression dropdown navbar, rôles/droits sur le profil 2026-05-12 20:07:33 +02:00
Cedric Abonnel 1d2e3d9a24 feat: roles, permissions, grille full-width, SSO display name
- Admin/roles : tableau des roles avec edition par role (/admin/role/<nom>)
- Permissions par role : cases a cocher groupees (Articles, Acces & lecture)
- Nouvelles capacites : propose/validate/publish articles (own/all), view_previews
- Nom technique auto-genere depuis le label (JS + fallback serveur)
- Blocage suppression du dernier administrateur
- user_capabilities table ajoutee en DB
- Navbar : dropdown unique (nom + Mon identite + Administration + Deconnexion)
- SSO callback : preserve le nom personnalise, ne l ecrase plus a la connexion
- Grille articles : CSS Grid auto-fill full-width, hauteur uniforme par ligne
- CSP : add_files.js et post_confirm.js externalises
2026-05-12 15:51:06 +02:00
Cedric Abonnel 70fd55be6f feat: clean URLs + fix addFileMeta silent failure 2026-05-12 10:04:58 +02:00
Cedric Abonnel be09fad48f pagination curseur, layout 3 colonnes article, sidebar fixe 2026-05-12 00:42:51 +02:00