Beispiel #1
0
 /**
  * Create a simple hierarchy of links.
  */
 function createLinkHierarchy($module = 'menu_test')
 {
     // First remove all the menu links.
     $menu_links = menu_link_load_multiple();
     menu_link_delete_multiple(array_keys($menu_links), TRUE, TRUE);
     // Then create a simple link hierarchy:
     // - $parent
     //   - $child-1
     //      - $child-1-1
     //      - $child-1-2
     //   - $child-2
     $base_options = array('link_title' => 'Menu link test', 'module' => $module, 'menu_name' => 'menu_test');
     $links['parent'] = $base_options + array('link_path' => 'menu-test/parent');
     $links['parent'] = entity_create('menu_link', $links['parent']);
     $links['parent']->save();
     $links['child-1'] = $base_options + array('link_path' => 'menu-test/parent/child-1', 'plid' => $links['parent']['mlid']);
     $links['child-1'] = entity_create('menu_link', $links['child-1']);
     $links['child-1']->save();
     $links['child-1-1'] = $base_options + array('link_path' => 'menu-test/parent/child-1/child-1-1', 'plid' => $links['child-1']['mlid']);
     $links['child-1-1'] = entity_create('menu_link', $links['child-1-1']);
     $links['child-1-1']->save();
     $links['child-1-2'] = $base_options + array('link_path' => 'menu-test/parent/child-1/child-1-2', 'plid' => $links['child-1']['mlid']);
     $links['child-1-2'] = entity_create('menu_link', $links['child-1-2']);
     $links['child-1-2']->save();
     $links['child-2'] = $base_options + array('link_path' => 'menu-test/parent/child-2', 'plid' => $links['parent']['mlid']);
     $links['child-2'] = entity_create('menu_link', $links['child-2']);
     $links['child-2']->save();
     return $links;
 }
Beispiel #2
0
 /**
  * {@inheritdoc}
  */
 public function submit(array $form, array &$form_state)
 {
     $form_state['redirect_route'] = new Url('menu_ui.overview_page');
     // Locked menus may not be deleted.
     if ($this->entity->isLocked()) {
         return;
     }
     // Reset all the menu links defined by the menu_link.static service.
     $result = \Drupal::entityQuery('menu_link')->condition('menu_name', $this->entity->id())->condition('module', '', '>')->condition('machine_name', '', '>')->sort('depth', 'ASC')->execute();
     $menu_links = $this->storage->loadMultiple($result);
     foreach ($menu_links as $link) {
         $link->reset();
     }
     // Delete all links to the overview page for this menu.
     $menu_links = $this->storage->loadByProperties(array('link_path' => 'admin/structure/menu/manage/' . $this->entity->id()));
     menu_link_delete_multiple(array_keys($menu_links));
     // Delete the custom menu and all its menu links.
     $this->entity->delete();
     $t_args = array('%title' => $this->entity->label());
     drupal_set_message(t('The custom menu %title has been deleted.', $t_args));
     watchdog('menu', 'Deleted custom menu %title and all its menu links.', $t_args, WATCHDOG_NOTICE);
 }