From 4434808549ba5d2f44d42bbdf005fbe7717ea33d Mon Sep 17 00:00:00 2001 From: Dan Harrin Date: Thu, 15 Aug 2019 04:41:03 +0100 Subject: [PATCH] Remove theme data on theme deletion (#4529) Credit to @DanHarrin. Fixes #1292. --- modules/cms/classes/Theme.php | 13 +++++++++++++ modules/cms/classes/ThemeManager.php | 2 ++ 2 files changed, 15 insertions(+) diff --git a/modules/cms/classes/Theme.php b/modules/cms/classes/Theme.php index 110d47dfe..24f05eafe 100644 --- a/modules/cms/classes/Theme.php +++ b/modules/cms/classes/Theme.php @@ -524,6 +524,19 @@ class Theme return ThemeData::forTheme($this); } + /** + * Remove data specific to this theme + * @return bool + */ + public function removeCustomData() + { + if ($this->hasCustomData()) { + return $this->getCustomData()->delete(); + } + + return true; + } + /** * Checks to see if the database layer has been enabled * diff --git a/modules/cms/classes/ThemeManager.php b/modules/cms/classes/ThemeManager.php index d7035a084..20de61a25 100644 --- a/modules/cms/classes/ThemeManager.php +++ b/modules/cms/classes/ThemeManager.php @@ -107,6 +107,8 @@ class ThemeManager throw new ApplicationException(trans('cms::lang.theme.delete_active_theme_failed')); } + $theme->removeCustomData(); + /* * Delete from file system */