function domain_menus_domain_delete in Domain Menus for Domains 3.x
Same name and namespace in other branches
- 9.x domain_menus.module \domain_menus_domain_delete()
- 9.1.x domain_menus.module \domain_menus_domain_delete()
Implements hook_ENTITY_TYPE_delete().
Delete domain menus of the domain being deleted. If a domain menu has assignment to multiple domains, remove the deleted domain from assignment instead of deleting the menu.
File
- ./
domain_menus.module, line 185 - Domain menus implementation through entity create, delete, and access customizations.
Code
function domain_menus_domain_delete(EntityInterface $entity) {
$domain = $entity;
$domain_id = $domain
->id();
$domain_domainid = $domain
->getDomainId();
$menus = \Drupal::entityTypeManager()
->getStorage('menu')
->loadMultiple();
if (!empty($menus)) {
foreach ($menus as $menu) {
$menu_domains = $menu
->getThirdPartySetting("domain_menus", "domains", []);
if (array_key_exists($domain_id, $menu_domains)) {
unset($menu_domains[$domain_id]);
if (empty($menu_domains)) {
$menu
->delete();
}
else {
$menu
->setThirdPartySetting('domain_menus', 'domains', $menu_domains);
$menu
->save();
}
}
}
}
}