public MenuLinkManager::updateDefinition($id, array $new_definition_values, $persist = TRUE)
Updates the values for a menu link definition in the menu tree storage.
This will update the definition for a discovered menu link without the need for a full rebuild. It is also used for plugins not found through discovery to update definitions.
Parameters
string $id: The menu link plugin ID.
array $new_definition_values: The new values for the link definition. This will usually be just a subset of the plugin definition.
bool $persist: TRUE to also have the link instance itself persist the changed values to any additional storage by invoking MenuLinkInterface::updateDefinition() on the plugin that is being updated.
Return value
\Drupal\Core\Menu\MenuLinkInterface A plugin instance created using the updated definition.
Throws
\Drupal\Component\Plugin\Exception\PluginException Thrown if the $id is not a valid, existing, plugin ID.
Overrides MenuLinkManagerInterface::updateDefinition
File
- core/lib/Drupal/Core/Menu/MenuLinkManager.php, line 365
Class
- MenuLinkManager
- Manages discovery, instantiation, and tree building of menu link plugins.
Namespace
Drupal\Core\Menu
Code
1 2 3 4 5 6 7 8 9 | public function updateDefinition( $id , array $new_definition_values , $persist = TRUE) { $instance = $this ->createInstance( $id ); if ( $instance ) { $new_definition_values [ 'id' ] = $id ; $changed_definition = $instance ->updateLink( $new_definition_values , $persist ); $this ->treeStorage->save( $changed_definition ); } return $instance ; } |
Please login to continue.