diff --git a/core/config/schema/core.menu.schema.yml b/core/config/schema/core.menu.schema.yml index c2da5ef0d50a52718307350fac1c8a31bdf131b6..a1fc321dfc7d32ebcfad1160945b3e2dc20a57e8 100644 --- a/core/config/schema/core.menu.schema.yml +++ b/core/config/schema/core.menu.schema.yml @@ -22,6 +22,6 @@ menu_link.static.overrides: expanded: type: boolean label: 'Expanded' - hidden: + enabled: type: boolean - label: 'Hidden' + label: 'Enabled' diff --git a/core/lib/Drupal/Core/Menu/Form/MenuLinkDefaultForm.php b/core/lib/Drupal/Core/Menu/Form/MenuLinkDefaultForm.php index 865195d62f1d3e63b8f5bc4393d4eebf2ba82c59..f6ee14bef183c99443b8c69bb225d7bda66c28ac 100644 --- a/core/lib/Drupal/Core/Menu/Form/MenuLinkDefaultForm.php +++ b/core/lib/Drupal/Core/Menu/Form/MenuLinkDefaultForm.php @@ -124,7 +124,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta '#type' => 'checkbox', '#title' => $this->t('Enable menu link'), '#description' => $this->t('Menu links that are not enabled will not be listed in any menu.'), - '#default_value' => !$this->menuLink->isHidden(), + '#default_value' => $this->menuLink->isEnabled(), ); $form['expanded'] = array( @@ -158,7 +158,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta */ public function extractFormValues(array &$form, FormStateInterface $form_state) { $new_definition = array(); - $new_definition['hidden'] = $form_state->getValue('enabled') ? 0 : 1; + $new_definition['enabled'] = $form_state->getValue('enabled') ? 1 : 0; $new_definition['weight'] = (int) $form_state->getValue('weight'); $new_definition['expanded'] = $form_state->getValue('expanded') ? 1 : 0; list($menu_name, $parent) = explode(':', $form_state->getValue('menu_parent'), 2); diff --git a/core/lib/Drupal/Core/Menu/MenuLinkBase.php b/core/lib/Drupal/Core/Menu/MenuLinkBase.php index 125bbf0545a4ef993f40615cddb82d8941a648c1..9636c72b82b105906c2e367935f8f19d0c95d590 100644 --- a/core/lib/Drupal/Core/Menu/MenuLinkBase.php +++ b/core/lib/Drupal/Core/Menu/MenuLinkBase.php @@ -61,8 +61,8 @@ public function getParent() { /** * {@inheritdoc} */ - public function isHidden() { - return (bool) $this->pluginDefinition['hidden']; + public function isEnabled() { + return (bool) $this->pluginDefinition['enabled']; } /** diff --git a/core/lib/Drupal/Core/Menu/MenuLinkDefault.php b/core/lib/Drupal/Core/Menu/MenuLinkDefault.php index 5d0f8e2e0c906b244be55682d50a613644e20f56..c2241428ce5d5693dd1954e87ecd13be4cf053b5 100644 --- a/core/lib/Drupal/Core/Menu/MenuLinkDefault.php +++ b/core/lib/Drupal/Core/Menu/MenuLinkDefault.php @@ -23,7 +23,7 @@ class MenuLinkDefault extends MenuLinkBase implements ContainerFactoryPluginInte 'parent' => 1, 'weight' => 1, 'expanded' => 1, - 'hidden' => 1, + 'enabled' => 1, ); /** diff --git a/core/lib/Drupal/Core/Menu/MenuLinkInterface.php b/core/lib/Drupal/Core/Menu/MenuLinkInterface.php index 811dbf0e3133da06bb0213a0fbe637a62575aa36..2738f271c383dd52fddf86b68e2f298f58be3de9 100644 --- a/core/lib/Drupal/Core/Menu/MenuLinkInterface.php +++ b/core/lib/Drupal/Core/Menu/MenuLinkInterface.php @@ -64,12 +64,12 @@ public function getProvider(); public function getParent(); /** - * Returns whether the menu link is hidden. + * Returns whether the menu link is enabled (not hidden). * * @return bool - * TRUE for hidden, FALSE otherwise. + * TRUE for enabled, FALSE otherwise. */ - public function isHidden(); + public function isEnabled(); /** * Returns whether the child menu links should always been shown. diff --git a/core/lib/Drupal/Core/Menu/MenuLinkManager.php b/core/lib/Drupal/Core/Menu/MenuLinkManager.php index 1aa0070b10b043f9e751346c73ac2b63011e9340..a8e73e81980eb57505f84d79ce972461e00f4528 100644 --- a/core/lib/Drupal/Core/Menu/MenuLinkManager.php +++ b/core/lib/Drupal/Core/Menu/MenuLinkManager.php @@ -58,7 +58,7 @@ class MenuLinkManager implements MenuLinkManagerInterface { // The default link options. 'options' => array(), 'expanded' => 0, - 'hidden' => 0, + 'enabled' => 1, // The name of the module providing this link. 'provider' => '', 'metadata' => array(), diff --git a/core/lib/Drupal/Core/Menu/MenuLinkTree.php b/core/lib/Drupal/Core/Menu/MenuLinkTree.php index e5d54fe4c1d3f7bd4529b5690b71b011c5e7d0cb..ddf924cec837105cb38efe682109934ae1418d89 100644 --- a/core/lib/Drupal/Core/Menu/MenuLinkTree.php +++ b/core/lib/Drupal/Core/Menu/MenuLinkTree.php @@ -205,7 +205,7 @@ public function build(array $tree) { /** @var \Drupal\Core\Menu\MenuLinkInterface $link */ $link = $data->link; // Generally we only deal with visible links, but just in case. - if ($link->isHidden()) { + if (!$link->isEnabled()) { continue; } // Set a class for the <li>-tag. Only set 'expanded' class if the link diff --git a/core/lib/Drupal/Core/Menu/MenuParentFormSelector.php b/core/lib/Drupal/Core/Menu/MenuParentFormSelector.php index 4164379dca1ee03141de5034f79c54fa2ce38ad7..e57b7e8a58ada89fd95795a4127d1b3f7987311f 100644 --- a/core/lib/Drupal/Core/Menu/MenuParentFormSelector.php +++ b/core/lib/Drupal/Core/Menu/MenuParentFormSelector.php @@ -143,7 +143,7 @@ protected function parentSelectOptionsTreeWalk(array $tree, $menu_name, $indent, $link = $element->link; if ($link->getPluginId() != $exclude) { $title = $indent . ' ' . Unicode::truncate($link->getTitle(), 30, TRUE, FALSE); - if ($link->isHidden()) { + if (!$link->isEnabled()) { $title .= ' (' . $this->t('disabled') . ')'; } $options[$menu_name . ':' . $link->getPluginId()] = $title; diff --git a/core/lib/Drupal/Core/Menu/MenuTreeParameters.php b/core/lib/Drupal/Core/Menu/MenuTreeParameters.php index c18ebb102eb2c12ec5963f2a32fac0c3d73e9a54..80383be0e0b0af4d8f0f09bf9640e3492400a246 100644 --- a/core/lib/Drupal/Core/Menu/MenuTreeParameters.php +++ b/core/lib/Drupal/Core/Menu/MenuTreeParameters.php @@ -184,12 +184,12 @@ public function addCondition($definition_field, $value, $operator = NULL) { } /** - * Excludes hidden links. + * Excludes links that are not enabled. * * @return $this */ - public function excludeHiddenLinks() { - $this->addCondition('hidden', 0); + public function onlyEnabledLinks() { + $this->addCondition('enabled', 1); return $this; } diff --git a/core/lib/Drupal/Core/Menu/MenuTreeStorage.php b/core/lib/Drupal/Core/Menu/MenuTreeStorage.php index 2f127efa8fd4f8f5f4dc32f798b28d4bb57b28ba..92775b4fd40f3737bbc03be9dedf36915895828f 100644 --- a/core/lib/Drupal/Core/Menu/MenuTreeStorage.php +++ b/core/lib/Drupal/Core/Menu/MenuTreeStorage.php @@ -94,7 +94,7 @@ class MenuTreeStorage implements MenuTreeStorageInterface { 'weight', 'options', 'expanded', - 'hidden', + 'enabled', 'provider', 'metadata', 'class', @@ -384,7 +384,7 @@ protected function preSave(array &$link, array $original) { // and fill parents based on the parent link. else { // @todo We want to also check $original['has_children'] here, but that - // will be 0 even if there are children if those are hidden. + // will be 0 even if there are children if those are not enabled. // has_children is really just the rendering hint. So, we either need // to define another column (has_any_children), or do the extra query. // https://www.drupal.org/node/2302149 @@ -409,7 +409,7 @@ protected function preSave(array &$link, array $original) { unset($fields['mlid']); // Cast Booleans to int, if needed. - $fields['hidden'] = (int) $fields['hidden']; + $fields['enabled'] = (int) $fields['enabled']; $fields['expanded'] = (int) $fields['expanded']; return $fields; } @@ -599,7 +599,7 @@ protected function updateParentalStatus(array $link) { $query ->condition('menu_name', $link['menu_name']) ->condition('parent', $link['parent']) - ->condition('hidden', 0); + ->condition('enabled', 1); $parent_has_children = ((bool) $query->execute()->fetchField()) ? 1 : 0; $this->connection->update($this->table, $this->options) @@ -781,7 +781,7 @@ public function getExpanded($menu_name, array $parents) { $query->condition('menu_name', $menu_name); $query->condition('expanded', 1); $query->condition('has_children', 1); - $query->condition('hidden', 0); + $query->condition('enabled', 1); $query->condition('parent', $parents, 'IN'); $query->condition('id', $parents, 'NOT IN'); $result = $this->safeExecuteSelect($query)->fetchAllKeyed(0, 0); @@ -997,7 +997,7 @@ public function loadSubtreeData($id, $max_relative_depth = NULL) { return $tree; } $parameters = new MenuTreeParameters(); - $parameters->setRoot($id)->excludeHiddenLinks(); + $parameters->setRoot($id)->onlyEnabledLinks(); return $this->loadTreeData($root['menu_name'], $parameters); } @@ -1057,7 +1057,7 @@ public function getAllChildIds($id) { */ public function loadAllChildren($id, $max_relative_depth = NULL) { $parameters = new MenuTreeParameters(); - $parameters->setRoot($id)->excludeRoot()->setMaxDepth($max_relative_depth)->excludeHiddenLinks(); + $parameters->setRoot($id)->excludeRoot()->setMaxDepth($max_relative_depth)->onlyEnabledLinks(); $links = $this->loadLinks(NULL, $parameters); foreach ($links as $id => $link) { $links[$id] = $this->prepareLink($link); @@ -1289,11 +1289,11 @@ protected static function schemaDefinition() { 'not null' => TRUE, 'default' => 'system', ), - 'hidden' => array( - 'description' => 'A flag for whether the link should be rendered in menus. (1 = a disabled menu item that may be shown on admin screens, 0 = a normal, visible link)', + 'enabled' => array( + 'description' => 'A flag for whether the link should be rendered in menus. (0 = a disabled menu item that may be shown on admin screens, 1 = a normal, visible link)', 'type' => 'int', 'not null' => TRUE, - 'default' => 0, + 'default' => 1, 'size' => 'small', ), 'discovered' => array( @@ -1324,7 +1324,7 @@ protected static function schemaDefinition() { 'serialize' => TRUE, ), 'has_children' => array( - 'description' => 'Flag indicating whether any non-hidden links have this link as a parent (1 = children exist, 0 = no children).', + 'description' => 'Flag indicating whether any enabled links have this link as a parent (1 = enabled children exist, 0 = no enabled children).', 'type' => 'int', 'not null' => TRUE, 'default' => 0, diff --git a/core/lib/Drupal/Core/Menu/MenuTreeStorageInterface.php b/core/lib/Drupal/Core/Menu/MenuTreeStorageInterface.php index 78028e146f255cb7d0e22fd2f6b121200bd4f515..9b7883cfa5aef3817af7d84fd5ac6c18b7c40b36 100644 --- a/core/lib/Drupal/Core/Menu/MenuTreeStorageInterface.php +++ b/core/lib/Drupal/Core/Menu/MenuTreeStorageInterface.php @@ -149,11 +149,11 @@ public function delete($id); public function loadTreeData($menu_name, MenuTreeParameters $parameters); /** - * Loads all the visible menu links that are below the given ID. + * Loads all the enabled menu links that are below the given ID. * * The returned links are not ordered, and visible children will be included - * even if they have a hidden parent or ancestor so would not normally appear - * in a rendered tree. + * even if they have parent that is not enabled or ancestor so would not + * normally appear in a rendered tree. * * @param string $id * The parent menu link ID. @@ -161,7 +161,7 @@ public function loadTreeData($menu_name, MenuTreeParameters $parameters); * The maximum relative depth of the children relative to the passed parent. * * @return array - * An array of visible (not hidden) link definitions, keyed by ID. + * An array of enabled link definitions, keyed by ID. */ public function loadAllChildren($id, $max_relative_depth = NULL); diff --git a/core/lib/Drupal/Core/Menu/StaticMenuLinkOverrides.php b/core/lib/Drupal/Core/Menu/StaticMenuLinkOverrides.php index 8b79bffc253ce102ab3700442967b7cd62ccabf7..ebde906303446468c11897ea75b823684f01c94b 100644 --- a/core/lib/Drupal/Core/Menu/StaticMenuLinkOverrides.php +++ b/core/lib/Drupal/Core/Menu/StaticMenuLinkOverrides.php @@ -129,7 +129,7 @@ public function saveOverride($id, array $definition) { 'parent' => 1, 'weight' => 1, 'expanded' => 1, - 'hidden' => 1, + 'enabled' => 1, ); // Filter the overrides to only those that are expected. $definition = array_intersect_key($definition, $expected); diff --git a/core/lib/Drupal/Core/Menu/StaticMenuLinkOverridesInterface.php b/core/lib/Drupal/Core/Menu/StaticMenuLinkOverridesInterface.php index 0ffb21a0fb225a96ffab476e27d88072488c121b..43c4416f12f9d1d0c6c1f7bd37d379ce2727ad94 100644 --- a/core/lib/Drupal/Core/Menu/StaticMenuLinkOverridesInterface.php +++ b/core/lib/Drupal/Core/Menu/StaticMenuLinkOverridesInterface.php @@ -32,7 +32,7 @@ public function reload(); * - weight * - menu_name * - expanded - * - hidden + * - enabled * or NULL if there is no override for the given ID. */ public function loadOverride($id); @@ -77,7 +77,7 @@ public function loadMultipleOverrides(array $ids); * - parent * - weight * - expanded - * - hidden + * - enabled * * @return array * A list of properties which got saved. diff --git a/core/modules/book/book.links.menu.yml b/core/modules/book/book.links.menu.yml index f7dbc18220e6625cb17217b1a32547b3824e79e2..0833dbd361434fe5a1c7e17f28fe52ae49668f4d 100644 --- a/core/modules/book/book.links.menu.yml +++ b/core/modules/book/book.links.menu.yml @@ -6,4 +6,4 @@ book.admin: book.render: title: Books route_name: book.render - hidden: 1 + enabled: 0 diff --git a/core/modules/contact/contact.links.menu.yml b/core/modules/contact/contact.links.menu.yml index 683be6386d0088b4d20c32bbe560a2a7b02887a2..8091f1fae17f310c53f3ff7500d79a716a47cf5d 100644 --- a/core/modules/contact/contact.links.menu.yml +++ b/core/modules/contact/contact.links.menu.yml @@ -7,4 +7,4 @@ contact.site_page: title: Contact route_name: contact.site_page menu_name: footer - hidden: 1 + enabled: 0 diff --git a/core/modules/filter/filter.links.menu.yml b/core/modules/filter/filter.links.menu.yml index e71db5015c33c9ed94a7ef29e5d3b6d0f22f7074..f689b2f08b44b202317eb26a2a0b5e1e82778b97 100644 --- a/core/modules/filter/filter.links.menu.yml +++ b/core/modules/filter/filter.links.menu.yml @@ -1,6 +1,6 @@ filter.tips_all: title: 'Compose tips' - hidden: 1 + enabled: 0 route_name: filter.tips_all filter.admin_overview: title: 'Text formats' diff --git a/core/modules/menu_link_content/src/Entity/MenuLinkContent.php b/core/modules/menu_link_content/src/Entity/MenuLinkContent.php index 162fd51427babc04bc1a420601df86f42da42cc5..11f1d12c39281a5196a184242032285e84630794 100644 --- a/core/modules/menu_link_content/src/Entity/MenuLinkContent.php +++ b/core/modules/menu_link_content/src/Entity/MenuLinkContent.php @@ -157,8 +157,8 @@ public function getPluginId() { /** * {@inheritdoc} */ - public function isHidden() { - return (bool) $this->get('hidden')->value; + public function isEnabled() { + return (bool) $this->get('enabled')->value; } /** @@ -204,7 +204,7 @@ protected function getPluginDefinition() { $definition['id'] = $this->getPluginId(); $definition['metadata'] = array('entity_id' => $this->id()); $definition['form_class'] = '\Drupal\menu_link_content\Form\MenuLinkContentForm'; - $definition['hidden'] = $this->isHidden() ? 1 : 0; + $definition['enabled'] = $this->isEnabled() ? 1 : 0; $definition['expanded'] = $this->isExpanded() ? 1 : 0; $definition['provider'] = 'menu_link_content'; $definition['discovered'] = 0; @@ -366,13 +366,19 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) { 'weight' => 0, )); - // @todo We manually create a form element for this, since the form logic is - // is inverted to show enabled. Flip this to a status field and use the - // normal entity Boolean widget. https://www.drupal.org/node/2305707 - $fields['hidden'] = BaseFieldDefinition::create('boolean') - ->setLabel(t('Hidden')) - ->setDescription(t('A flag for whether the link should be hidden in menus or rendered normally.')) - ->setSetting('default_value', FALSE); + $fields['enabled'] = BaseFieldDefinition::create('boolean') + ->setLabel(t('Enabled')) + ->setDescription(t('A flag for whether the link should be enabled in menus or hidden.')) + ->setSetting('default_value', TRUE) + ->setDisplayOptions('view', array( + 'label' => 'hidden', + 'type' => 'boolean', + 'weight' => 0, + )) + ->setDisplayOptions('form', array( + 'settings' => array('display_label' => TRUE), + 'weight' => 0, + )); $fields['langcode'] = BaseFieldDefinition::create('language') ->setLabel(t('Language code')) diff --git a/core/modules/menu_link_content/src/Form/MenuLinkContentForm.php b/core/modules/menu_link_content/src/Form/MenuLinkContentForm.php index 35f6d8e4bc4023ca2884f7423d9abe6dd2d96b02..ce2d81ddaf8ccc222d2d06b3acfbf645cc2c8a6b 100644 --- a/core/modules/menu_link_content/src/Form/MenuLinkContentForm.php +++ b/core/modules/menu_link_content/src/Form/MenuLinkContentForm.php @@ -213,7 +213,7 @@ protected function extractUrl($url) { public function extractFormValues(array &$form, FormStateInterface $form_state) { $new_definition = array(); $new_definition['expanded'] = !$form_state->isValueEmpty(array('expanded', 'value')) ? 1 : 0; - $new_definition['hidden'] = $form_state->isValueEmpty('enabled') ? 1 : 0; + $new_definition['enabled'] = !$form_state->isValueEmpty(array('enabled', 'value')) ? 1 : 0; list($menu_name, $parent) = explode(':', $form_state->getValue('menu_parent'), 2); if (!empty($menu_name)) { $new_definition['menu_name'] = $menu_name; @@ -294,14 +294,6 @@ public function form(array $form, FormStateInterface $form_state) { '#access' => !empty($language_configuration['language_show']), ); - $form['enabled'] = array( - '#type' => 'checkbox', - '#title' => $this->t('Enable menu link'), - '#description' => $this->t('Menu links that are not enabled will not be listed in any menu.'), - '#default_value' => !$this->entity->isHidden(), - '#weight' => 0, - ); - $default = $this->entity->getMenuName() . ':' . $this->entity->getParentId(); $form['menu_parent'] = $this->menuParentSelector->parentSelectElement($default, $this->entity->getPluginId()); $form['menu_parent']['#weight'] = 10; @@ -342,7 +334,7 @@ public function buildEntity(array $form, FormStateInterface $form_state) { $entity->parent->value = $new_definition['parent']; $entity->menu_name->value = $new_definition['menu_name']; - $entity->hidden->value = (bool) $new_definition['hidden']; + $entity->enabled->value = (bool) $new_definition['enabled']; $entity->expanded->value = $new_definition['expanded']; $entity->url->value = $new_definition['url']; diff --git a/core/modules/menu_link_content/src/MenuLinkContentInterface.php b/core/modules/menu_link_content/src/MenuLinkContentInterface.php index a5d0aca449757140636b9a32a646d087536c9e94..98922e9e1645dbc2d49312276816a4f8e4116db2 100644 --- a/core/modules/menu_link_content/src/MenuLinkContentInterface.php +++ b/core/modules/menu_link_content/src/MenuLinkContentInterface.php @@ -118,12 +118,12 @@ public function getDescription(); public function getPluginId(); /** - * Returns whether the menu link is marked as hidden. + * Returns whether the menu link is marked as enabled. * * @return bool - * TRUE if is not enabled, otherwise FALSE. + * TRUE if is enabled, otherwise FALSE. */ - public function isHidden(); + public function isEnabled(); /** * Returns whether the menu link is marked as always expanded. diff --git a/core/modules/menu_link_content/src/Plugin/Menu/MenuLinkContent.php b/core/modules/menu_link_content/src/Plugin/Menu/MenuLinkContent.php index 95228417382bf49e78650bb6d2d7c8784445a8b5..ea47019859ada0d15ffe211a6916e86d90cb7a13 100644 --- a/core/modules/menu_link_content/src/Plugin/Menu/MenuLinkContent.php +++ b/core/modules/menu_link_content/src/Plugin/Menu/MenuLinkContent.php @@ -37,7 +37,7 @@ class MenuLinkContent extends MenuLinkBase implements ContainerFactoryPluginInte 'parent' => 1, 'weight' => 1, 'expanded' => 1, - 'hidden' => 1, + 'enabled' => 1, 'title' => 1, 'description' => 1, 'route_name' => 1, diff --git a/core/modules/menu_ui/menu_ui.module b/core/modules/menu_ui/menu_ui.module index 05310a2c32050c1c859e6f321819a83ebb91b2d1..07fcb8105187cdef4349757b3729cb76d0339a3c 100644 --- a/core/modules/menu_ui/menu_ui.module +++ b/core/modules/menu_ui/menu_ui.module @@ -197,7 +197,7 @@ function menu_ui_node_save(EntityInterface $node) { if (trim($definition['title'])) { if (!empty($definition['entity_id'])) { $entity = entity_load('menu_link_content', $definition['entity_id']); - $entity->hidden->value = 0; + $entity->enabled->value = 1; $entity->title->value = trim($definition['title']); $entity->description->value = trim($definition['description']); $entity->menu_name->value = $definition['menu_name']; @@ -214,7 +214,7 @@ function menu_ui_node_save(EntityInterface $node) { 'menu_name' => $definition['menu_name'], 'parent' => $definition['parent'], 'weight' => isset($definition['weight']) ? $definition['weight'] : 0, - 'hidden' => 0, + 'enabled' => 1, 'bundle' => 'menu_link_content', 'langcode' => $node->getUntranslated()->language()->id, )); diff --git a/core/modules/menu_ui/src/MenuForm.php b/core/modules/menu_ui/src/MenuForm.php index 302a9e294eeb1a93f4b3d7c7a99eddd050ba7eac..2b3758f8dd442b9aaa62bcec8a30e0815b328a5b 100644 --- a/core/modules/menu_ui/src/MenuForm.php +++ b/core/modules/menu_ui/src/MenuForm.php @@ -265,9 +265,9 @@ protected function buildOverviewTreeForm($tree, $delta) { if ($link) { $id = 'menu_plugin_id:' . $link->getPluginId(); $form[$id]['#item'] = $element; - $form[$id]['#attributes'] = $link->isHidden() ? array('class' => array('menu-disabled')) : array('class' => array('menu-enabled')); + $form[$id]['#attributes'] = $link->isEnabled() ? array('class' => array('menu-enabled')) : array('class' => array('menu-disabled')); $form[$id]['title']['#markup'] = $this->linkGenerator->generateFromUrl($link->getTitle(), $link->getUrlObject(), $link->getOptions()); - if ($link->isHidden()) { + if (!$link->isEnabled()) { $form[$id]['title']['#markup'] .= ' (' . $this->t('disabled') . ')'; } elseif (($url = $link->getUrlObject()) && !$url->isExternal() && $url->getRouteName() == 'user.page') { @@ -278,7 +278,7 @@ protected function buildOverviewTreeForm($tree, $delta) { '#type' => 'checkbox', '#title' => $this->t('Enable @title menu link', array('@title' => $link->getTitle())), '#title_display' => 'invisible', - '#default_value' => !$link->isHidden(), + '#default_value' => $link->isEnabled(), ); $form[$id]['weight'] = array( '#type' => 'weight', @@ -378,13 +378,7 @@ protected function submitOverviewForm(array $complete_form, FormStateInterface $ // Update any fields that have changed in this menu item. foreach ($fields as $field) { if ($element[$field]['#value'] != $element[$field]['#default_value']) { - // Hidden is a special case, the form value needs to be reversed. - if ($field == 'enabled') { - $updated_values['hidden'] = $element['enabled']['#value'] ? 0 : 1; - } - else { - $updated_values[$field] = $element[$field]['#value']; - } + $updated_values[$field] = $element[$field]['#value']; } } if ($updated_values) { diff --git a/core/modules/menu_ui/src/Tests/MenuTest.php b/core/modules/menu_ui/src/Tests/MenuTest.php index ecec599ed518b17af8eaa392056e012589db749f..a97b8ab39d1f89e2930162f7dad7c3a8068a626f 100644 --- a/core/modules/menu_ui/src/Tests/MenuTest.php +++ b/core/modules/menu_ui/src/Tests/MenuTest.php @@ -400,7 +400,7 @@ function doMenuTests() { $item5->save(); // Verify in the database. - $this->assertMenuLink($item1->getPluginId(), array('hidden' => 0)); + $this->assertMenuLink($item1->getPluginId(), array('enabled' => 1)); // Add an external link. $item7 = $this->addMenuLink('', 'http://drupal.org', $menu_name); @@ -529,7 +529,7 @@ function addMenuLink($parent = '', $path = '<front>', $menu_name = 'tools', $exp 'url' => $path, 'title[0][value]' => $title, 'description[0][value]' => '', - 'enabled' => 1, + 'enabled[value]' => 1, 'expanded[value]' => $expanded, 'menu_parent' => $menu_name . ':' . $parent, 'weight[0][value]' => $weight, @@ -711,12 +711,12 @@ function toggleMenuLink(MenuLinkContent $item) { */ function disableMenuLink(MenuLinkContent $item) { $mlid = $item->id(); - $edit['enabled'] = FALSE; + $edit['enabled[value]'] = FALSE; $this->drupalPostForm("admin/structure/menu/item/$mlid/edit", $edit, t('Save')); // Unlike most other modules, there is no confirmation message displayed. // Verify in the database. - $this->assertMenuLink($item->getPluginId(), array('hidden' => 1)); + $this->assertMenuLink($item->getPluginId(), array('enabled' => 0)); } /** @@ -727,11 +727,11 @@ function disableMenuLink(MenuLinkContent $item) { */ function enableMenuLink(MenuLinkContent $item) { $mlid = $item->id(); - $edit['enabled'] = TRUE; + $edit['enabled[value]'] = TRUE; $this->drupalPostForm("admin/structure/menu/item/$mlid/edit", $edit, t('Save')); // Verify in the database. - $this->assertMenuLink($item->getPluginId(), array('hidden' => 0)); + $this->assertMenuLink($item->getPluginId(), array('enabled' => 1)); } /** diff --git a/core/modules/menu_ui/src/Tests/MenuWebTestBase.php b/core/modules/menu_ui/src/Tests/MenuWebTestBase.php index 60691974c1a3259d587fc3e2cde634b097309d89..38fb79901530e8ad5ef662f3076971d2b4c30f6a 100644 --- a/core/modules/menu_ui/src/Tests/MenuWebTestBase.php +++ b/core/modules/menu_ui/src/Tests/MenuWebTestBase.php @@ -68,6 +68,11 @@ function assertMenuLink($menu_plugin_id, array $expected_item) { unset($expected_item['langcode']); } + if (isset($expected_item['enabled']) && $entity) { + $this->assertEqual($entity->enabled->value, $expected_item['enabled']); + unset($expected_item['enabled']); + } + foreach ($expected_item as $key => $value) { $this->assertTrue(isset($definition[$key])); $this->assertEqual($definition[$key], $value); diff --git a/core/modules/search/search.links.menu.yml b/core/modules/search/search.links.menu.yml index da872a96f439982aeba1222fe2fe0ba5cd1c0f71..2bb0a1895e7602059e8a6a57d6e424b9e3b7ea0e 100644 --- a/core/modules/search/search.links.menu.yml +++ b/core/modules/search/search.links.menu.yml @@ -1,7 +1,7 @@ search.view: title: Search route_name: search.view - hidden: 1 + enabled: 0 search.settings: title: 'Search pages' parent: system.admin_config_search diff --git a/core/modules/system/src/Controller/SystemController.php b/core/modules/system/src/Controller/SystemController.php index c811e85c7267f713b54160816e81148b70b4227f..605b0a90d7d1a66e0988b40989bb615f420d1ee5 100644 --- a/core/modules/system/src/Controller/SystemController.php +++ b/core/modules/system/src/Controller/SystemController.php @@ -120,7 +120,7 @@ public function overview($link_id) { } // Load all menu links below it. $parameters = new MenuTreeParameters(); - $parameters->setRoot($link_id)->excludeRoot()->setTopLevelOnly()->excludeHiddenLinks(); + $parameters->setRoot($link_id)->excludeRoot()->setTopLevelOnly()->onlyEnabledLinks(); $tree = $this->menuLinkTree->load(NULL, $parameters); $manipulators = array( array('callable' => 'menu.default_tree_manipulators:checkAccess'), diff --git a/core/modules/system/src/SystemManager.php b/core/modules/system/src/SystemManager.php index 00f97aae4e9c1350fd706cd297456fefd1107730..d8786b2b641b2bf6894c81041e926a3281143b1c 100644 --- a/core/modules/system/src/SystemManager.php +++ b/core/modules/system/src/SystemManager.php @@ -217,7 +217,7 @@ public function getAdminBlock(MenuLinkInterface $instance) { // Only find the children of this link. $link_id = $instance->getPluginId(); $parameters = new MenuTreeParameters(); - $parameters->setRoot($link_id)->excludeRoot()->setTopLevelOnly()->excludeHiddenLinks(); + $parameters->setRoot($link_id)->excludeRoot()->setTopLevelOnly()->onlyEnabledLinks(); $tree = $this->menuTree->load(NULL, $parameters); $manipulators = array( array('callable' => 'menu.default_tree_manipulators:checkAccess'), diff --git a/core/modules/system/src/Tests/Menu/BreadcrumbTest.php b/core/modules/system/src/Tests/Menu/BreadcrumbTest.php index 6661fb46156a733672a73ea6ce20a33cd1d52fb7..fe6a72e1488f829033297d4017d67c45342077a6 100644 --- a/core/modules/system/src/Tests/Menu/BreadcrumbTest.php +++ b/core/modules/system/src/Tests/Menu/BreadcrumbTest.php @@ -170,7 +170,7 @@ function testBreadCrumbs() { 'type' => $type, 'title' => $title, 'menu' => array( - 'hidden' => 0, + 'enabled' => 1, 'title' => 'Parent ' . $title, 'description' => '', 'menu_name' => $menu, @@ -243,6 +243,7 @@ function testBreadCrumbs() { 'title[0][value]' => "$name link", 'url' => "taxonomy/term/{$term->id()}", 'menu_parent' => "$menu:{$parent_mlid}", + 'enabled[value]' => 1, ); $this->drupalPostForm("admin/structure/menu/manage/$menu/add", $edit, t('Save')); $menu_links = entity_load_multiple_by_properties('menu_link_content', array('title' => $edit['title[0][value]'], 'route_name' => 'taxonomy.term_page', 'route_parameters' => serialize(array('taxonomy_term' => $term->id())))); diff --git a/core/modules/system/src/Tests/Menu/MenuTreeStorageTest.php b/core/modules/system/src/Tests/Menu/MenuTreeStorageTest.php index b1ebda653db1e6c39ad5a15a1d7c6acc20b82674..a923e9bf7473497ead6ad6b223f072fd11ad03cb 100644 --- a/core/modules/system/src/Tests/Menu/MenuTreeStorageTest.php +++ b/core/modules/system/src/Tests/Menu/MenuTreeStorageTest.php @@ -181,21 +181,21 @@ public function testMenuLinkMoving() { } /** - * Tests with hidden child links. + * Tests with disabled child links. */ - public function testMenuHiddenChildLinks() { + public function testMenuDisabledChildLinks() { // Add some links with parent on the previous one and test some values. // <tools> // - test1 - // -- test2 (hidden) + // -- test2 (disabled) $this->addMenuLink('test1', ''); $this->assertMenuLink('test1', array('has_children' => 0, 'depth' => 1)); - $this->addMenuLink('test2', 'test1', '<front>', array(), 'tools', array('hidden' => 1)); + $this->addMenuLink('test2', 'test1', '<front>', array(), 'tools', array('enabled' => 0)); // The 1st link does not have any visible children, so has_children is 0. $this->assertMenuLink('test1', array('has_children' => 0, 'depth' => 1)); - $this->assertMenuLink('test2', array('has_children' => 0, 'depth' => 2, 'hidden' => 1), array('test1')); + $this->assertMenuLink('test2', array('has_children' => 0, 'depth' => 2, 'enabled' => 0), array('test1')); // Add more links with parent on the previous one. // <footer> @@ -203,7 +203,7 @@ public function testMenuHiddenChildLinks() { // =============== // <tools> // - test1 - // -- test2 (hidden) + // -- test2 (disabled) // --- test3 // ---- test4 // ----- test5 @@ -367,7 +367,7 @@ protected function moveMenuLink($id, $new_parent) { * @param array $parents * An ordered array of the IDs of the menu links that are the parents. * @param array $children - * Array of child IDs that are visible (hidden == 0). + * Array of child IDs that are visible (enabled == 1). */ protected function assertMenuLink($id, array $expected_properties, array $parents = array(), array $children = array()) { $query = $this->connection->select('menu_tree'); diff --git a/core/modules/system/src/Tests/System/AdminTest.php b/core/modules/system/src/Tests/System/AdminTest.php index f5609c718b44bb4d2a2f9889f6d8324ae39afe46..a52cffac2093b70d2ac73bc0c7ce696802bcadee 100644 --- a/core/modules/system/src/Tests/System/AdminTest.php +++ b/core/modules/system/src/Tests/System/AdminTest.php @@ -128,7 +128,7 @@ protected function getTopLevelMenuLinks() { // The system.admin link is normally the parent of all top-level admin links. $parameters = new MenuTreeParameters(); - $parameters->setRoot('system.admin')->excludeRoot()->setTopLevelOnly()->excludeHiddenLinks(); + $parameters->setRoot('system.admin')->excludeRoot()->setTopLevelOnly()->onlyEnabledLinks(); $tree = $menu_tree->load(NULL, $parameters); $manipulators = array( array('callable' => 'menu.default_tree_manipulators:checkAccess'), diff --git a/core/modules/system/system.module b/core/modules/system/system.module index 6875449ff18b21c5efe358abaa87c4788773dc3c..10e291fc565e4633bc14de93bfffdc8806df5eb7 100644 --- a/core/modules/system/system.module +++ b/core/modules/system/system.module @@ -1448,7 +1448,7 @@ function system_get_module_admin_tasks($module, array $info) { if (!isset($tree)) { $parameters = new MenuTreeParameters(); - $parameters->setRoot('system.admin')->excludeRoot()->excludeHiddenLinks(); + $parameters->setRoot('system.admin')->excludeRoot()->onlyEnabledLinks(); $tree = $menu_tree->load('system.admin', $parameters); $manipulators = array( array('callable' => 'menu.default_tree_manipulators:checkAccess'), diff --git a/core/modules/toolbar/toolbar.module b/core/modules/toolbar/toolbar.module index e07e8f91823ce8b4efc509fa51465bed0f3d5ffe..a667e08485d56af341f4ffa7ff757fe9b85f2b85 100644 --- a/core/modules/toolbar/toolbar.module +++ b/core/modules/toolbar/toolbar.module @@ -417,7 +417,7 @@ function toolbar_prerender_toolbar_administration_tray(array $element) { $menu_tree = \Drupal::menuTree(); // Render the top-level administration menu links. $parameters = new MenuTreeParameters(); - $parameters->setRoot('system.admin')->excludeRoot()->setTopLevelOnly()->excludeHiddenLinks(); + $parameters->setRoot('system.admin')->excludeRoot()->setTopLevelOnly()->onlyEnabledLinks(); $tree = $menu_tree->load(NULL, $parameters); $manipulators = array( array('callable' => 'menu.default_tree_manipulators:checkAccess'), @@ -475,7 +475,7 @@ function toolbar_menu_navigation_links(array $tree) { function toolbar_get_rendered_subtrees() { $menu_tree = \Drupal::menuTree(); $parameters = new MenuTreeParameters(); - $parameters->setRoot('system.admin')->excludeRoot()->setMaxDepth(3)->excludeHiddenLinks(); + $parameters->setRoot('system.admin')->excludeRoot()->setMaxDepth(3)->onlyEnabledLinks(); $tree = $menu_tree->load(NULL, $parameters); $manipulators = array( array('callable' => 'menu.default_tree_manipulators:checkAccess'), diff --git a/core/modules/user/src/Plugin/Menu/MyAccountMenuLink.php b/core/modules/user/src/Plugin/Menu/MyAccountMenuLink.php index 91768cdfceac33a990f952daf4f9cd9ea69459aa..e7bba2e6dd7bf0e2c7aa88fe581f58422d839d2e 100644 --- a/core/modules/user/src/Plugin/Menu/MyAccountMenuLink.php +++ b/core/modules/user/src/Plugin/Menu/MyAccountMenuLink.php @@ -17,14 +17,14 @@ class MyAccountMenuLink extends MenuLinkDefault { /** * {@inheritdoc} */ - public function isHidden() { + public function isEnabled() { // The path 'user' must be accessible for anonymous users, but only visible // for authenticated users. Authenticated users should see "My account", but // anonymous users should not see it at all. // @todo Re-write this as a link to user.view with dynamic route parameters // to affect access since hidden should not be dynamic. // https://www.drupal.org/node/2306991 - return $this->pluginDefinition['hidden'] || \Drupal::currentUser()->isAnonymous(); + return $this->pluginDefinition['enabled'] && !\Drupal::currentUser()->isAnonymous(); } /** diff --git a/core/modules/user/src/Tests/UserAccountLinksTests.php b/core/modules/user/src/Tests/UserAccountLinksTests.php index e602120195011071df0c45011779334ed5609831..f972f72b695aee454cde1fb2be3b47b4215ff192 100644 --- a/core/modules/user/src/Tests/UserAccountLinksTests.php +++ b/core/modules/user/src/Tests/UserAccountLinksTests.php @@ -70,7 +70,7 @@ function testSecondaryMenu() { $tree = $menu_tree->transform($tree, $manipulators); $this->assertEqual(count($tree), 1, 'The secondary links menu contains only one menu link.'); $element = reset($tree); - $this->assertTrue($element->link->isHidden(), 'The menu link is hidden.'); + $this->assertFalse($element->link->isEnabled(), 'The menu link is disabled.'); } /** diff --git a/core/modules/views/src/Plugin/Menu/ViewsMenuLink.php b/core/modules/views/src/Plugin/Menu/ViewsMenuLink.php index 2d8cd903b4076917f4aa062f26559e6929dcbf5c..a07862f301f27cd5c2484b9919eef3a62fe0b56e 100644 --- a/core/modules/views/src/Plugin/Menu/ViewsMenuLink.php +++ b/core/modules/views/src/Plugin/Menu/ViewsMenuLink.php @@ -28,7 +28,7 @@ class ViewsMenuLink extends MenuLinkBase implements ContainerFactoryPluginInterf 'parent' => 1, 'weight' => 1, 'expanded' => 1, - 'hidden' => 1, + 'enabled' => 1, 'title' => 1, 'description' => 1, 'metadata' => 1, diff --git a/core/profiles/standard/standard.install b/core/profiles/standard/standard.install index 673ddf7e2e43e9ad29b6d5907ddb13012da04aaf..6ea9c051ddfcb8c67aad04f55b20fb9aa7983663 100644 --- a/core/profiles/standard/standard.install +++ b/core/profiles/standard/standard.install @@ -46,7 +46,7 @@ function standard_install() { // Enable the Contact link in the footer menu. /** @var \Drupal\Core\Menu\MenuLinkManagerInterface $menu_link_manager */ $menu_link_manager = \Drupal::service('plugin.manager.menu.link'); - $menu_link_manager->updateDefinition('contact.site_page', array('hidden' => 0)); + $menu_link_manager->updateDefinition('contact.site_page', array('enabled' => 1)); user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, array('access site-wide contact form')); user_role_grant_permissions(DRUPAL_AUTHENTICATED_RID, array('access site-wide contact form')); diff --git a/core/tests/Drupal/Tests/Core/Menu/MenuTreeParametersTest.php b/core/tests/Drupal/Tests/Core/Menu/MenuTreeParametersTest.php index 750cb93a8f6289a0e7cb2ec89cc7674f226f46d7..42225415c03d1c03c9bae95c545896ab7a28e373 100644 --- a/core/tests/Drupal/Tests/Core/Menu/MenuTreeParametersTest.php +++ b/core/tests/Drupal/Tests/Core/Menu/MenuTreeParametersTest.php @@ -115,14 +115,14 @@ public function testAddCondition() { } /** - * Tests excludeHiddenLinks(). + * Tests onlyEnabledLinks(). * - * @covers ::excludeHiddenLinks + * @covers ::onlyEnabledLinks */ - public function testExcludeHiddenLinks() { + public function testOnlyEnabledLinks() { $parameters = new MenuTreeParameters(); - $parameters->excludeHiddenLinks(); - $this->assertEquals(0, $parameters->conditions['hidden']); + $parameters->onlyEnabledLinks(); + $this->assertEquals(1, $parameters->conditions['enabled']); } /**