@@ -335,142 +335,6 @@ public function ensureTableNamePrefix(EncodePropertyValueFromWidgetEvent $event)
335
335
$ event ->setValue ($ tableName );
336
336
}
337
337
338
- /**
339
- * Destroy auxiliary data of attributes and delete the attributes themselves from the database.
340
- *
341
- * @param IMetaModel $metaModel The MetaModel to destroy.
342
- *
343
- * @return void
344
- */
345
- protected function destroyAttributes (IMetaModel $ metaModel )
346
- {
347
- foreach ($ metaModel ->getAttributes () as $ attribute ) {
348
- $ attribute ->destroyAUX ();
349
- }
350
-
351
- $ this ->getDatabase ()
352
- ->prepare ('DELETE FROM tl_metamodel_attribute WHERE pid=? ' )
353
- ->execute ($ metaModel ->get ('id ' ));
354
- }
355
-
356
- /**
357
- * Destroy the dca combinations for a MetaModel.
358
- *
359
- * @param IMetaModel $metaModel The MetaModel to destroy.
360
- *
361
- * @return void
362
- */
363
- protected function destroyDcaCombinations (IMetaModel $ metaModel )
364
- {
365
- $ this ->getDatabase ()
366
- ->prepare ('DELETE FROM tl_metamodel_dca_combine WHERE pid=? ' )
367
- ->execute ($ metaModel ->get ('id ' ));
368
- }
369
-
370
- /**
371
- * Destroy the input screens for a MetaModel.
372
- *
373
- * @param IMetaModel $metaModel The MetaModel to destroy.
374
- *
375
- * @return void
376
- */
377
- protected function destroyInputScreens (IMetaModel $ metaModel )
378
- {
379
- $ database = $ this ->getDatabase ();
380
- // Delete everything from dca settings.
381
- $ idList = $ database
382
- ->prepare ('SELECT id FROM tl_metamodel_dca WHERE pid=? ' )
383
- ->execute ($ metaModel ->get ('id ' ))
384
- ->fetchEach ('id ' );
385
-
386
- if ($ idList ) {
387
- $ database
388
- ->prepare (
389
- sprintf (
390
- 'DELETE FROM tl_metamodel_dcasetting WHERE pid IN (%s) ' ,
391
- implode (', ' , $ idList )
392
- )
393
- )
394
- ->execute ();
395
- $ database
396
- ->prepare (
397
- sprintf (
398
- 'DELETE FROM tl_metamodel_dca_sortgroup WHERE pid IN (%s) ' ,
399
- implode (', ' , $ idList )
400
- )
401
- )
402
- ->execute ();
403
- }
404
-
405
- // Delete the input screens.
406
- $ database
407
- ->prepare ('DELETE FROM tl_metamodel_dca WHERE pid=? ' )
408
- ->execute ($ metaModel ->get ('id ' ));
409
- }
410
-
411
- /**
412
- * Destroy the render settings for a MetaModel.
413
- *
414
- * @param IMetaModel $metaModel The MetaModel to destroy.
415
- *
416
- * @return void
417
- */
418
- protected function destroyRenderSettings (IMetaModel $ metaModel )
419
- {
420
- $ database = $ this ->getDatabase ();
421
- // Delete everything from render settings.
422
- $ arrIds = $ database
423
- ->prepare ('SELECT id FROM tl_metamodel_rendersettings WHERE pid=? ' )
424
- ->execute ($ metaModel ->get ('id ' ))
425
- ->fetchEach ('id ' );
426
-
427
- if ($ arrIds ) {
428
- $ database
429
- ->prepare (
430
- sprintf (
431
- 'DELETE FROM tl_metamodel_rendersetting WHERE pid IN (%s) ' ,
432
- implode (', ' , $ arrIds )
433
- )
434
- )
435
- ->execute ();
436
- }
437
-
438
- // Delete the render settings.
439
- $ database
440
- ->prepare ('DELETE FROM tl_metamodel_rendersettings WHERE pid=? ' )
441
- ->execute ($ metaModel ->get ('id ' ));
442
- }
443
-
444
- /**
445
- * Destroy the filter settings for a MetaModel.
446
- *
447
- * @param IMetaModel $metaModel The MetaModel to destroy.
448
- *
449
- * @return void
450
- */
451
- protected function destroyFilterSettings (IMetaModel $ metaModel )
452
- {
453
- $ database = $ this ->getDatabase ();
454
- // Delete everything from filter settings.
455
- $ arrIds = $ database
456
- ->prepare ('SELECT id FROM tl_metamodel_filter WHERE pid=? ' )
457
- ->execute ($ metaModel ->get ('id ' ))
458
- ->fetchEach ('id ' );
459
- if ($ arrIds ) {
460
- $ database
461
- ->prepare (
462
- sprintf (
463
- 'DELETE FROM tl_metamodel_filtersetting WHERE pid IN (%s) ' ,
464
- implode (', ' , $ arrIds )
465
- )
466
- )
467
- ->execute ();
468
- }
469
- $ database
470
- ->prepare ('DELETE FROM tl_metamodel_filter WHERE pid=? ' )
471
- ->execute ($ metaModel ->get ('id ' ));
472
- }
473
-
474
338
/**
475
339
* Handle the deletion of a MetaModel and all attached data.
476
340
*
@@ -480,20 +344,14 @@ protected function destroyFilterSettings(IMetaModel $metaModel)
480
344
*/
481
345
public function handleDelete (PreDeleteModelEvent $ event )
482
346
{
483
- if ($ event ->getEnvironment ()->getDataDefinition ()-> getName () !== 'tl_metamodel ' ) {
347
+ if ($ event ->getModel ()->getProviderName () !== 'tl_metamodel ' ) {
484
348
return ;
485
349
}
486
350
487
351
$ factory = $ this ->getServiceContainer ()->getFactory ();
488
352
489
353
$ metaModel = $ factory ->getMetaModel ($ factory ->translateIdToMetaModelName ($ event ->getModel ()->getId ()));
490
354
if ($ metaModel ) {
491
- $ this ->destroyAttributes ($ metaModel );
492
- $ this ->destroyDcaCombinations ($ metaModel );
493
- $ this ->destroyInputScreens ($ metaModel );
494
- $ this ->destroyRenderSettings ($ metaModel );
495
- $ this ->destroyFilterSettings ($ metaModel );
496
-
497
355
TableManipulation::deleteTable ($ metaModel ->getTableName ());
498
356
}
499
357
}
0 commit comments