Loading group_content_menu.info.yml +1 −0 Original line number Diff line number Diff line Loading @@ -8,4 +8,5 @@ dependencies: - drupal:block - drupal:menu_ui - group:group - group_content_menu:menu_link_reference configure: entity.group_content_menu_type.collection group_content_menu.install 0 → 100644 +32 −0 Original line number Diff line number Diff line <?php /** * @file */ use Drupal\Core\Extension\ModuleInstallerInterface; use Drupal\Core\Field\BaseFieldDefinition; /** * Implements hook_update_N(). */ function group_content_menu_update_9000() { $installer = \Drupal::service('module_installer'); assert($installer instanceof ModuleInstallerInterface); $installer->install(['menu_link_reference']); $field = BaseFieldDefinition::create('menu_link_reference') ->setLabel(t('Menu parent')) ->setRequired(FALSE) ->setTranslatable(FALSE) ->setDisplayOptions('view', [ 'region' => 'hidden', ]) ->setDisplayOptions('form', [ 'region' => 'hidden', ]) ->setDisplayConfigurable('view', FALSE) ->setDisplayConfigurable('form', TRUE); \Drupal::entityDefinitionUpdateManager() ->installFieldStorageDefinition('parent', 'group_content_menu', 'group_content_menu', $field); } group_content_menu.module +2 −2 Original line number Diff line number Diff line Loading @@ -110,17 +110,17 @@ function group_content_menu_group_insert(EntityInterface $entity) { 'bundle' => $plugin->getDerivativeId(), ]); $group_menu->save(); assert($group_menu instanceof GroupContentMenuInterface); // Add menu link for group if enabled. $auto_create_home_link = $group_type_configuration['auto_create_home_link']; if ($auto_create_home_link) { $menu_name = GroupContentMenuInterface::MENU_PREFIX . $group_menu->id(); $menu_link = \Drupal::entityTypeManager()->getStorage('menu_link_content')->create([ 'title' => $group_type_configuration['auto_create_home_link_title'], 'link' => [ 'uri' => 'internal:/group/' . $entity->id(), ], 'menu_name' => $menu_name, 'menu_name' => $group_menu->getMenuName(), ]); $menu_link->save(); } Loading group_content_menu.services.yml +3 −0 Original line number Diff line number Diff line Loading @@ -5,3 +5,6 @@ services: - '@entity_type.manager' tags: - { name: access_check, applies_to: _group_menu_owns_content } group_content_menu.menu_id_helper: class: Drupal\group_content_menu\MenuIdHelper arguments: ['@menu.tree_storage', '@entity_type.manager'] group_content_submenu/README.mddeleted 100644 → 0 +0 −3 Original line number Diff line number Diff line After creating a group content menu type, add the parent menu name and the parent menu link fields. Now you can select a core menu and a link within that and the group menu will appear inside the core menu. Loading
group_content_menu.info.yml +1 −0 Original line number Diff line number Diff line Loading @@ -8,4 +8,5 @@ dependencies: - drupal:block - drupal:menu_ui - group:group - group_content_menu:menu_link_reference configure: entity.group_content_menu_type.collection
group_content_menu.install 0 → 100644 +32 −0 Original line number Diff line number Diff line <?php /** * @file */ use Drupal\Core\Extension\ModuleInstallerInterface; use Drupal\Core\Field\BaseFieldDefinition; /** * Implements hook_update_N(). */ function group_content_menu_update_9000() { $installer = \Drupal::service('module_installer'); assert($installer instanceof ModuleInstallerInterface); $installer->install(['menu_link_reference']); $field = BaseFieldDefinition::create('menu_link_reference') ->setLabel(t('Menu parent')) ->setRequired(FALSE) ->setTranslatable(FALSE) ->setDisplayOptions('view', [ 'region' => 'hidden', ]) ->setDisplayOptions('form', [ 'region' => 'hidden', ]) ->setDisplayConfigurable('view', FALSE) ->setDisplayConfigurable('form', TRUE); \Drupal::entityDefinitionUpdateManager() ->installFieldStorageDefinition('parent', 'group_content_menu', 'group_content_menu', $field); }
group_content_menu.module +2 −2 Original line number Diff line number Diff line Loading @@ -110,17 +110,17 @@ function group_content_menu_group_insert(EntityInterface $entity) { 'bundle' => $plugin->getDerivativeId(), ]); $group_menu->save(); assert($group_menu instanceof GroupContentMenuInterface); // Add menu link for group if enabled. $auto_create_home_link = $group_type_configuration['auto_create_home_link']; if ($auto_create_home_link) { $menu_name = GroupContentMenuInterface::MENU_PREFIX . $group_menu->id(); $menu_link = \Drupal::entityTypeManager()->getStorage('menu_link_content')->create([ 'title' => $group_type_configuration['auto_create_home_link_title'], 'link' => [ 'uri' => 'internal:/group/' . $entity->id(), ], 'menu_name' => $menu_name, 'menu_name' => $group_menu->getMenuName(), ]); $menu_link->save(); } Loading
group_content_menu.services.yml +3 −0 Original line number Diff line number Diff line Loading @@ -5,3 +5,6 @@ services: - '@entity_type.manager' tags: - { name: access_check, applies_to: _group_menu_owns_content } group_content_menu.menu_id_helper: class: Drupal\group_content_menu\MenuIdHelper arguments: ['@menu.tree_storage', '@entity_type.manager']
group_content_submenu/README.mddeleted 100644 → 0 +0 −3 Original line number Diff line number Diff line After creating a group content menu type, add the parent menu name and the parent menu link fields. Now you can select a core menu and a link within that and the group menu will appear inside the core menu.