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:anonymizeundcrispy:analytics:deletezum 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:cleanupbereinigt 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:
DatabaseControllersdurch 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,CreateUserundInviteUsermit 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,TemplateServiceundPageServicestatt 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 perTaskLoaderServiceundTask-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 sowieNavbarDatabaseControllerundCrispyNavbarItemModelwurden entfernt. - NavbarPageController / NavbarsPageController: Beide Controller wurden entfernt.
- Migrationen: Mehrere ältere Migrationsdateien wurden konsolidiert und durch eine neue
0_init.phpsowie ü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 dersearchPage-Datenbankabfrage korrigiert, umNULL-Werte zu vermeiden. - LicensePageController: Aufruf-Methode für POST-Route auf
preRenderkorrigiert. - Analytics:
PageHitModelundAnalyticsRepositorybehandeln nullable Seiten-IDs korrekt; Seitenlöschung berücksichtigt verknüpfte Analytics-Einträge.