From ef44993035ded9e427192682023d84f777737450 Mon Sep 17 00:00:00 2001 From: Henning Leutz <leutz@pcsg.de> Date: Fri, 16 Oct 2020 13:07:51 +0200 Subject: [PATCH] refactor: react at project delete event and delete unneeded bricks --- events.xml | 1 + src/QUI/Bricks/Events.php | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/events.xml b/events.xml index 6b282b1..95423a1 100644 --- a/events.xml +++ b/events.xml @@ -3,4 +3,5 @@ <event on="onSiteSave" fire="\QUI\Bricks\Events::onSiteSave"/> <event on="onSmartyInit" fire="\QUI\Bricks\Events::onSmartyInit"/> <event on="onPackageSetup" fire="\QUI\Bricks\Events::onPackageSetup"/> + <event on="onDeleteProject" fire="\QUI\Bricks\Events::onDeleteProject"/> </events> diff --git a/src/QUI/Bricks/Events.php b/src/QUI/Bricks/Events.php index d3da466..b6f7e14 100644 --- a/src/QUI/Bricks/Events.php +++ b/src/QUI/Bricks/Events.php @@ -160,6 +160,42 @@ public static function onSiteSave($Site) $Site->save(); } + /** + * event: on project delete + * + * @param string $project + */ + public static function onDeleteProject($project) + { + // delete uid entries + $uidTable = QUI\Bricks\Manager::getUIDTable(); + + try { + QUI::getDataBase()->delete($uidTable, [ + 'project' => $project + ]); + } catch (QUI\Exception $Exception) { + QUI\System\Log::addError($Exception->getMessage()); + } + + // delete brocks project tables + // Mainproject_de_bricksCache + $Table = QUI::getDataBase()->table(); + $tables = $Table->getTables(); + + foreach ($tables as $table) { + if (\strpos($table, $project) !== 0) { + continue; + } + + if (\strpos($table, '_bricksCache') === false) { + continue; + } + + $Table->delete($table); + } + } + /** * Event : on smarty init * add new brickarea function -- GitLab