CW Blog & News 0.4.0-alpha24
============================

Release-Basis
-------------
- CW 3.0.0-beta4 oder neuer
- PHP 8.3 oder neuer
- Basis: Blog & News 0.4.0-alpha23

Neu: Beitrag-Puls
-----------------
- vier eigenständige Reaktionen: Aha!, Hilfreich, Mehr davon und Nicht ganz
- optionale zweite Feedbackebene: Genau richtig, Mehr Praxis, Mehr Details, Zu technisch und Zu lang
- eine Reaktion pro Besucher/Beitrag; die Auswahl kann später geändert werden
- öffentliche Reaktionsanzahl optional
- Verteilung kann optional erst nach eigener Reaktion eingeblendet werden
- global schaltbar und pro Beitrag mit Ein/Aus/Standard überschreibbar

Neu: Kommentare und Moderation
------------------------------
- Kommentare global und pro Beitrag vollständig abschaltbar
- globale Voreinstellung: Kommentare aus
- Moderationsarten: immer prüfen, bekannte freigegebene Absender oder Sofortfreigabe
- öffentlich erscheinen ausschließlich freigegebene Kommentare
- eigene Moderationsansicht für wartende, freigegebene, Spam- und ausgeblendete Kommentare
- optionales E-Mail-Feld; E-Mail-Adressen werden niemals öffentlich ausgegeben

Spamschutz / Sicherheit
-----------------------
- CSRF-Schutz und Einmal-Submission-Token
- Honeypot, Mindestzeit, Rechen-Captcha, Rate-Limit und Dublettenprüfung
- konfigurierbares Link-Limit und lokale Spam-Muster
- eigener WAF-Scope `blog-interaction` für notwendige POST-Anfragen
- der normale öffentliche WAF-Scope bleibt unverändert
- keine Roh-IP wird in den Blog-Interaktionstabellen gespeichert

Neu: Resonanzstatistik
----------------------
- internes Resonanz-Dashboard für Reaktionen und Leserwünsche
- Reaktionen im Verhältnis zu vorhandenen Analytics-Aufrufen
- Auswertung nach Land, Stadt und Gerät, soweit diese Informationen über die vorhandene
  CW-Analytics-/GeoIP-Konfiguration datenschutzkonform zur Verfügung stehen
- Blog speichert dafür nur den abgeleiteten Besucher-/Session-Hash und die freigegebenen Kontextwerte

Datenbank
---------
- neue Migration 013-interactions
- blog_posts erhält pulse_mode, comments_mode und comments_moderation
- neue Tabellen blog_reactions und blog_comments
- Foreign Keys entfernen Interaktionsdaten beim endgültigen Löschen eines Beitrags mit
- bestehende Blog-Backup-Regel für project/storage/content.sqlite bleibt erhalten

Frontend / Projekt-Templates
----------------------------
- das Standard-Post-Template bindet die Interaktionszone unterhalb des eigentlichen Artikels ein
- das Modul liefert eine neutrale portable CSS-/JS-Basis
- Projekt-Themes können die Interaktionszone vollständig gestalten, ohne den Modulcode zu ändern
- Hinweis: Projekte mit vollständig überschriebenem project/templates/blog/post.php müssen die
  Interaktionszone selbst mit cw_blog_render_interaction_area($post) einbinden

Kompatibilität
--------------
- bestehende Beiträge übernehmen für Puls und Kommentare standardmäßig die globalen Einstellungen
- Kommentare bleiben nach der Migration standardmäßig deaktiviert
- Beitrag-Puls ist standardmäßig aktiviert und kann global oder pro Beitrag deaktiviert werden
- keine Änderung am CW-Core erforderlich
