Search Documentation

Search for pages and headings in the documentation

CrispyCMS 26.04 – Changelog

Diese Seite dokumentiert die Änderungen und Neuerungen in den einzelnen Releases der Version 26.04 von CrispyCMS.

Neue Funktionen

  • Analytics: Seitenaufruf-Tracking implementiert – Besuche werden mit IP-Adresse, Seiten-Referenz, Land, Bundesland, Stadt und User-Agent in der Datenbank gespeichert (AnalyticsRepository, AnalyticsService, PageHitModel).
  • Analytics-Dashboard: Besucher-Statistik-Chart (Chart.js) auf der Dashboard-Seite für die letzten 30 Tage eingeführt.
  • Analytics-CLI: Neue Konsolenbefehle crispy:analytics:anonymize und crispy:analytics:delete zum Anonymisieren bzw. Löschen alter Seitenaufrufe nach konfigurierbarer Anzahl an Tagen.
  • GeoIP-Integration: MaxMind GeoIP-Datenbank integriert – Länder-, Bundesland- und Stadtcodes werden bei Seitenaufrufen erfasst.
  • Länder-Traffic-Map: Interaktive Weltkarte auf dem Dashboard visualisiert den Besuchertraffic nach Ländern.
  • Festplattennutzung: Überwachung und Anzeige der Festplattennutzung (/data-Verzeichnis) im Dashboard als neue Karte.
  • Backup-Management: Neue API-Endpunkte und UI-Integration für die Verwaltung von Backups.
  • Dark Mode / Theming: Nutzer können zwischen hellem und dunklem Theme wechseln; Einstellung wird als Cookie gespeichert. Logo-Varianten und CKEditor-Stile passen sich dem gewählten Theme an. Theme-Auswahl auch in den Benutzereinstellungen verfügbar.
  • Lizenz-Verwaltung (UI): Neues Modal zum Aktualisieren und Verwalten des Lizenzschlüssels. Erzwungenes Löschen von Lizenzen möglich. Verbesserte Passwort-Sichtbarkeit und Tooltip-Informationen in der Lizenz-UI.
  • Lizenz-Validierung für Plugins: Plugins können jetzt eine gültige Lizenz voraussetzen; entsprechende Hinweise und Übersetzungen wurden ergänzt.
  • Seiten-Draft-Vorschau: Entwürfe von Seiten können direkt im Editor in der Vorschau angezeigt werden.
  • Custom Page Properties – Berechtigungen: Neue Berechtigungen für das Verwalten von benutzerdefinierten Seiteneigenschaften; zugehörige Controller und Templates aktualisiert.
  • CLI – CreateSuperUser: Neuer Konsolenbefehl zum Anlegen eines Superusers.
  • CLI – DisableOidc: Neuer Konsolenbefehl zum Deaktivieren der OIDC-Authentifizierung.
  • Session-Bereinigung: Neuer CLI-Befehl crispy:sessions:cleanup bereinigt abgelaufene und verwaiste Sessions (Benutzer nicht mehr vorhanden).
  • Globale Suche: Globales Such-Eingabefeld in der Navbar hinzugefügt.
  • Kategorien in der Navbar: Kategorienverwaltung als Navigationspunkt in der Sidebar ergänzt (mit Berechtigungsprüfung).
  • Rollen in der Navbar: Rollenverwaltung als Navigationspunkt in der Sidebar ergänzt.
  • Crispy Signage: Neues Plugin für die Erstellung von Digital Signage Displays.

Verbesserungen

  • Dashboard: Neue Karten für Seiten und Benutzer mit Statistik-Charts; Dashboard-Layout für bessere Responsivität überarbeitet; Routen und Graph-Controller refaktoriert.
  • Maps-Plugin: DatabaseControllers durch Repository-Klassen ersetzt (CategoryRepository, LocationRepository, ReportRepository, VoteRepository).
  • LicenseService: Lizenz-Verwaltungslogik (Install, Uninstall, Enable, Disable, Grace Period) vollständig in den LicenseService überführt; überflüssige Trace-Logging-Aufrufe entfernt.
  • Login-Seite: Neues visuelles Design mit animiertem Hintergrundbild, schwebenden Farbelementen (CSS-Animationen) und Parallax-Effekt eingeführt; Release-Codename wird bedingt angezeigt.
  • SystemInfo: Release-Codename wird neben der Build-Nummer angezeigt; GeoIP-Datenbankstatus und -Informationen werden auf der Systeminformationsseite dargestellt.
  • Modals: Layouts der Modals CreateCategory, CreatePage, CreateRole, CreateUser und InviteUser mit verbesserter Formstruktur, Icons, Hilfetexten und Barrierefreiheits-Attributen überarbeitet.
  • Layouts-Template: Kartenstruktur, Barrierefreiheit und Leer-Zustand der Layouts-Ansicht verbessert.
  • Navbar-Struktur: NavbarCreatedEventSubscriber überarbeitet – Divider-Modelle entfernt, Design-Item mit verschachtelten Templates und Layouts eingeführt.
  • Route-Attribute: PHP-Attribute für Routen in CMS-Control-Page-Controllern implementiert.
  • Plugin-UI: Plugin-Verwaltungsoberfläche aktualisiert.
  • WelcomeCard: Titel der WelcomeCard enthält jetzt die Edition-Information.
  • FileManager: Layout verbessert; CKEditor-Mindesthöhe per Stylesheet gesetzt.
  • Sample-Data-Migration: Migration für Beispieldaten nutzt jetzt LayoutService, TemplateService und PageService statt direktem SQL-Datei-Import.
  • CI/CD – Harbor-Registry: Docker-Images werden jetzt unter dem distribution-Pfad der Harbor-Registry veröffentlicht; Cosign-Image-Signierung eingeführt.
  • CRISP_VERSION: Auf Version 21 angehoben.

Breaking Changes

  • Architektur – Cron-Tasks: Cron-Controller in eigenständige Task-Klassen extrahiert und per TaskLoaderService und Task-Attribut registriert (AcmeTask, AnonymizeAnalyticsTask, AutoBackupTask, EmbeddingTask, LicenseExpiryMailNotificationsTask, LicenseTask, LicenseUsageUpdateTask).
  • Architektur – Repository-Pattern: Alle Datenbankzugriffe auf Illuminate Database Capsule und dedizierte Repository-Klassen migriert (AnalyticsRepository, CategoryRepository, LayoutRepository, PageRepository, PluginRepository, RoleRepository, TemplateRepository, TokenRepository, UserRepository).
  • Architektur – Service-Schicht: Neue Service-Klassen eingeführt (AnalyticsService, CategoryService, LayoutService, LicenseService, PageService, PluginService, TemplateService, UserService) zur Entkopplung von Controller-Logik und Datenbankzugriffen.
  • DatabaseController: Die deprecated DatabaseController-Klasse sowie NavbarDatabaseController und CrispyNavbarItemModel wurden entfernt.
  • NavbarPageController / NavbarsPageController: Beide Controller wurden entfernt.
  • Migrationen: Mehrere ältere Migrationsdateien wurden konsolidiert und durch eine neue 0_init.php sowie überarbeitete Folge-Migrationen ersetzt; Migrationsskripte nutzen jetzt Capsule und Blueprint. Bestehende Installationen müssen die Migrationslaufhistorie entsprechend berücksichtigen.

Bugfixes

  • Suche: custom_properties-Handling in der searchPage-Datenbankabfrage korrigiert, um NULL-Werte zu vermeiden.
  • LicensePageController: Aufruf-Methode für POST-Route auf preRender korrigiert.
  • Analytics: PageHitModel und AnalyticsRepository behandeln nullable Seiten-IDs korrekt; Seitenlöschung berücksichtigt verknüpfte Analytics-Einträge.