function domain_menus_install in Domain Menus for Domains 9.1.x
Same name and namespace in other branches
- 9.x domain_menus.install \domain_menus_install()
- 3.x domain_menus.install \domain_menus_install()
Implements hook_install().
If domain_menus module was previously enabled and uninstalled, there may be domain menus that had its domain menus third party settings removed as a result of module uninstallation. Add domain menus third party settings back to these menus on module install so the menus are recognized as domain menus.
File
- ./
domain_menus.install, line 19 - Install, update, and uninstall functions for the Domain Menus module.
Code
function domain_menus_install() {
$domains = \Drupal::entityTypeManager()
->getStorage('domain')
->loadMultiple();
$menus = \Drupal::entityTypeManager()
->getStorage('menu')
->loadMultiple();
foreach ($menus as $menu) {
foreach ($domains as $domain) {
$domain_id = $domain
->id();
$domain_domainid = $domain
->getDomainId();
$menu_domainid_partial = trim(new FormattableMarkup(DOMAIN_MENUS_MENU_ID_PATTERN, [
'@domain_domainid' => $domain_domainid,
'@menu_name' => '',
]));
$menu_id = $menu
->id();
if (strpos($menu_id, $menu_domainid_partial) === 0) {
$menu
->setThirdPartySetting('domain_menus', 'domains', array(
$domain_id => $domain_id,
));
$menu
->setThirdPartySetting('domain_menus', 'auto-created', 1);
$menu
->save();
}
}
reset($domains);
}
}