diff options
| author | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2026-02-11 13:58:37 +0100 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2026-02-11 13:58:37 +0100 |
| commit | 0edd963f21bcbfe3f5628d76ff94a281501a9a96 (patch) | |
| tree | 319ca3aa76cf552fac1aa7758a7bacbb2fe3a672 /lib/models/Theme.php | |
| parent | 7dc2d3e1266810b98758faeaf3bd4dcab04330ce (diff) | |
delete theme asset upon theme deletion, allow activation regardless of other themes state and some small touchups, fixes #6244biest-6244
Diffstat (limited to 'lib/models/Theme.php')
| -rw-r--r-- | lib/models/Theme.php | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/lib/models/Theme.php b/lib/models/Theme.php index 824d8cd..852dc42 100644 --- a/lib/models/Theme.php +++ b/lib/models/Theme.php @@ -67,8 +67,13 @@ && $theme->isFieldDirty('values') ) ) { - self::loadActiveThemes(true); - self::getThemeAsset()->writeContent(self::getActiveCSS()); + self::regenerateCSS(); + } + }; + + $config['registered_callbacks']['after_delete'][] = function (Theme $theme): void { + if ($theme->active) { + self::regenerateCSS(); } }; @@ -105,12 +110,19 @@ public static function getDownloadURL(): string { $asset = self::getThemeAsset(); - return URLHelper::getLink( + return URLHelper::getURL( "assets.php/css/{$asset->id}#{$asset->filename}", ['v' => $asset->chdate], true ); + } + + private static function regenerateCSS(): void + { + self::getThemeAsset()->delete(); + self::loadActiveThemes(true); + self::getThemeAsset()->writeContent(self::getActiveCSS()); } public static function getActiveCSS(): string |
