diff --git a/events.xml b/events.xml index 6b282b16ec58571294c674aafa7e03b2c8ac65da..95423a17b34c08022e76e847bcd98e8522df0012 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 d3da466be7c672dd87d8631b5a6d236badaf381a..b6f7e14a5f258e9862896faa95a93ccf8f802ec4 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