/**
* Handle the deletion of a MetaModel and all attached data.
*
* @param PreDeleteModelEvent $event The event.
*
* @return void
*/
public function handleDelete(PreDeleteModelEvent $event)
{
if ($event->getEnvironment()->getDataDefinition()->getName() !== 'tl_metamodel') {
return;
}
$factory = $this->getServiceContainer()->getFactory();
$metaModel = $factory->getMetaModel($factory->translateIdToMetaModelName($event->getModel()->getId()));
if ($metaModel) {
$this->destroyAttributes($metaModel);
$this->destroyDcaCombinations($metaModel);
$this->destroyInputScreens($metaModel);
$this->destroyRenderSettings($metaModel);
$this->destroyFilterSettings($metaModel);
TableManipulation::deleteTable($metaModel->getTableName());
}
}