v1.4.0
NebulaCMS v1.4.0
Release type: minor
Focus: theme deactivation, nested settings support, color validation, requirement checker, settings schema, uninstall hooks, zip security, and ActivityLog updates
Release commit: d1c01ea3ab60c59925b8bfb37ef2b84ed1e05431
Summary
This release adds comprehensive theme management improvements including theme deactivation with before/after hooks, nested settings support using dot notation for both themes and plugins, and color field validation with hex color regex pattern. It also introduces theme requirement checker to validate theme dependencies, settings schema for structured theme configuration, and uninstall hooks for clean theme removal. ZIP security has been hardened with SecureZipInspector service. Additionally, Spatie ActivityLog has been updated to use the new submitEmptyLogs method and namespace structure.
Added
- Theme deactivation: Added
deactivatemethod toThemeControllerwith before/after hooks viaThemeHooksclass. - Nested settings support: Implemented settings merge using dot notation for both themes and plugins in
PluginControllerandThemeController. - Color validation: Added hex color regex pattern validation for color fields in theme settings.
- Theme requirement checker: New
ThemeRequirementCheckerservice to validate theme dependencies. - Settings schema: Added schema validation for theme settings.
- Uninstall hooks: Implemented uninstall hooks for themes with
ThemeHooksclass. - ZIP security: New
SecureZipInspectorservice for hardened ZIP upload validation. - Activity log migration: Added migration for
activity_logtable.
Changed
- Theme organization: Moved theme hooks from
PluginHooksto dedicatedThemeHooksclass. - ActivityLog method: Updated from
dontLogEmptyChanges()tosubmitEmptyLogs()inPageandPostmodels. - ActivityLog imports: Updated namespace structure for Spatie ActivityLog imports.
- Asset publishing: Added lock mechanism to prevent concurrent asset publishing operations.
- Dependencies: Updated composer dependencies including Spatie packages.
Upgrade notes
- Database:
php artisan migrate(activity log table added). - Theme compatibility: Existing themes should add
uninstall.phpand updatetheme.jsonwith settings schema if using nested settings. - Reported version: Should show 1.4.0 in Settings → System after this release.