You are here

function domain_menus_domain_insert in Domain Menus for Domains 9.1.x

Same name and namespace in other branches
  1. 9.x domain_menus.module \domain_menus_domain_insert()
  2. 3.x domain_menus.module \domain_menus_domain_insert()

Implements hook_ENTITY_TYPE_insert().

Create domain menus for the domain being created.

File

./domain_menus.module, line 131
Domain menus implementation through entity create, delete, and access customizations.

Code

function domain_menus_domain_insert(EntityInterface $entity) {
  $domain = $entity;
  $domain_id = $domain
    ->id();
  $domain_domainid = $domain
    ->getDomainId();
  $domain_label = Markup::create($domain
    ->label());
  $domain_menus = _domain_menus_get_setting('domain_menus_menu_names');
  if (!empty($domain_menus)) {
    $menu_names = explode("\r\n", $domain_menus);
    if (!empty($menu_names)) {
      foreach ($menu_names as $menu_name) {
        if (!empty($menu_name)) {
          $menu_name = Markup::create($menu_name);
          $menu = Menu::create(array(
            'id' => trim(t(DOMAIN_MENUS_MENU_ID_PATTERN, [
              '@domain_domainid' => $domain_domainid,
              '@menu_name' => $menu_name,
            ])),
            'label' => trim(t(DOMAIN_MENUS_MENU_LABEL_PATTERN, [
              '@domain_label' => $domain_label,
              '@menu_name' => $menu_name,
            ])),
          ));
          $menu
            ->setThirdPartySetting('domain_menus', 'domains', array(
            $domain_id => $domain_id,
          ));
          $menu
            ->setThirdPartySetting('domain_menus', 'auto-created', 1);
          $menu
            ->save();
        }
      }
    }
  }
}