function MenuLinkManager::resetInstance

Same name in other branches
  1. 9 core/lib/Drupal/Core/Menu/MenuLinkManager.php \Drupal\Core\Menu\MenuLinkManager::resetInstance()
  2. 8.9.x core/lib/Drupal/Core/Menu/MenuLinkManager.php \Drupal\Core\Menu\MenuLinkManager::resetInstance()
  3. 11.x core/lib/Drupal/Core/Menu/MenuLinkManager.php \Drupal\Core\Menu\MenuLinkManager::resetInstance()

Resets the menu link to its default settings.

Parameters

\Drupal\Core\Menu\MenuLinkInterface $instance: The menu link which should be reset.

Return value

\Drupal\Core\Menu\MenuLinkInterface The reset menu link.

Throws

\Drupal\Component\Plugin\Exception\PluginException Thrown when the menu link is not resettable.

2 calls to MenuLinkManager::resetInstance()
MenuLinkManager::deleteLinksInMenu in core/lib/Drupal/Core/Menu/MenuLinkManager.php
MenuLinkManager::resetLink in core/lib/Drupal/Core/Menu/MenuLinkManager.php

File

core/lib/Drupal/Core/Menu/MenuLinkManager.php, line 355

Class

MenuLinkManager
Manages discovery, instantiation, and tree building of menu link plugins.

Namespace

Drupal\Core\Menu

Code

protected function resetInstance(MenuLinkInterface $instance) {
    $id = $instance->getPluginId();
    if (!$instance->isResettable()) {
        throw new PluginException("Menu link {$id} is not resettable");
    }
    // Get the original data from disk, reset the override and re-save the menu
    // tree for this link.
    $definition = $this->getDefinitions()[$id];
    $this->overrides
        ->deleteOverride($id);
    $this->treeStorage
        ->save($definition);
    return $this->createInstance($id);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.