diff --git a/modules/paragraphs_gridstack_demo/paragraphs_gridstack_demo.install b/modules/paragraphs_gridstack_demo/paragraphs_gridstack_demo.install index a367ecd31fa87c0cffc2012ef621825670d7b17a..c07d50a4241833c7828e6bc86d893615fc040447 100644 --- a/modules/paragraphs_gridstack_demo/paragraphs_gridstack_demo.install +++ b/modules/paragraphs_gridstack_demo/paragraphs_gridstack_demo.install @@ -64,3 +64,52 @@ function paragraphs_gridstack_demo_install() { \Drupal::service('search_api.post_request_indexing')->destruct(); } } + +/** + * Delete installed entities and configs. + * + * Implements hook_install(). + */ +function paragraphs_gridstack_demo_uninstall() { + // Delete installed entities. + $gridstack_demo_node = \Drupal::service('entity_type.manager')->getStorage('node')->loadByProperties(['type' => 'gridstack_content_demo']); + foreach ($gridstack_demo_node as $node) { + $paragraphs = $node->get('field_gridstack_paragraphs')->referencedEntities(); + foreach ($paragraphs as $paragraph) { + $paragraph_gridstack_entites = $paragraph->referencedEntities(); + foreach ($paragraph_gridstack_entites as $entity) { + $entity->delete(); + } + $paragraph->delete(); + } + $node->delete(); + } + // Delete configs. + $config_factory = \Drupal::service('config.factory'); + $configs = [ + 'core.entity_form_display.node.gridstack_content_demo.default', + 'core.entity_form_display.paragraph.gridstack_container.default', + 'core.entity_view_display.node.gridstack_content_demo.teaser', + 'core.entity_view_display.paragraph.gridstack_container.default', + 'core.entity_view_display.paragraph.gridstack_item.default', + 'field.field.node.gridstack_content_demo.field_gridstack_paragraphs', + 'field.field.paragraph.gridstack_container.field_gridstack_paragraphs', + 'field.field.paragraph.gridstack_item.field_gridstack_image', + 'field.field.paragraph.gridstack_item.field_gridstack_subtitle', + 'field.field.paragraph.gridstack_item.field_gridstack_title', + 'field.storage.node.field_gridstack_paragraphs', + 'field.storage.paragraph.field_gridstack_image', + 'field.storage.paragraph.field_gridstack_paragraphs', + 'field.storage.paragraph.field_gridstack_subtitle', + 'field.storage.paragraph.field_gridstack_title', + 'node.type.gridstack_content_demo', + 'paragraphs.paragraphs_type.gridstack_container', + 'paragraphs.paragraphs_type.gridstack_item', + 'paragraphs_gridstack.optionset.demo', + 'core.entity_form_display.paragraph.gridstack_item.default', + 'core.entity_view_display.node.gridstack_content_demo.default', + ]; + foreach ($configs as $config) { + $config_factory->getEditable($config)->delete(); + } +}