You are here

protected function SimpleSitemapStorage::doDelete in Simple XML sitemap 4.x

@todo Improve performance of his method.

Overrides ConfigEntityStorage::doDelete

File

src/Entity/SimpleSitemapStorage.php, line 64

Class

SimpleSitemapStorage

Namespace

Drupal\simple_sitemap\Entity

Code

protected function doDelete($entities) {
  $default_variant = $this->settings
    ->get('default_variant');

  /** @var \Drupal\simple_sitemap\Entity\SimpleSitemapInterface[] $entities */
  foreach ($entities as $entity) {

    // Remove sitemap content.
    $this
      ->deleteContent($entity);

    // Unset default variant setting if necessary.
    if ($default_variant === $entity
      ->id()) {
      $this->settings
        ->save('default_variant', NULL);
    }

    // Remove bundle settings.
    foreach ($this->configFactory
      ->listAll("simple_sitemap.bundle_settings.{$entity->id()}.") as $config_name) {
      $this->configFactory
        ->getEditable($config_name)
        ->delete();
    }

    // Remove custom links.
    foreach ($this->configFactory
      ->listAll("simple_sitemap.custom_links.{$entity->id()}") as $config_name) {
      $this->configFactory
        ->getEditable($config_name)
        ->delete();
    }

    // Remove bundle settings entity overrides.
    $this->database
      ->delete('simple_sitemap_entity_overrides')
      ->condition('type', $entity
      ->id())
      ->execute();
  }
  parent::doDelete($entities);
}