Mercurial > hg > isophonics-drupal-site
view core/lib/Drupal/Core/Menu/MenuLinkInterface.php @ 19:fa3358dc1485 tip
Add ndrum files
author | Chris Cannam |
---|---|
date | Wed, 28 Aug 2019 13:14:47 +0100 |
parents | 4c8ae668cc8c |
children |
line wrap: on
line source
<?php namespace Drupal\Core\Menu; use Drupal\Component\Plugin\PluginInspectionInterface; use Drupal\Component\Plugin\DerivativeInspectionInterface; use Drupal\Core\Cache\CacheableDependencyInterface; /** * Defines an interface for classes providing a type of menu link. */ interface MenuLinkInterface extends PluginInspectionInterface, DerivativeInspectionInterface, CacheableDependencyInterface { /** * Returns the weight of the menu link. * * @return int * The weight of the menu link, 0 by default. */ public function getWeight(); /** * Returns the localized title to be shown for this link. * * @return string * The title of the menu link. */ public function getTitle(); /** * Returns the description of the menu link. * * @return string * The description of the menu link. */ public function getDescription(); /** * Returns the menu name of the menu link. * * @return string * The menu name of the menu link. */ public function getMenuName(); /** * Returns the provider (module name) of the menu link. * * @return string * The provider of the menu link. */ public function getProvider(); /** * Returns the plugin ID of the menu link's parent, or an empty string. * * @return string * The parent plugin ID. */ public function getParent(); /** * Returns whether the menu link is enabled (not hidden). * * @return bool * TRUE for enabled, FALSE otherwise. */ public function isEnabled(); /** * Returns whether the child menu links should always been shown. * * @return bool * TRUE for expanded, FALSE otherwise. */ public function isExpanded(); /** * Returns whether this link can be reset. * * In general, only links that store overrides using the * menu_link.static.overrides service should return TRUE for this method. * * @return bool * TRUE if it can be reset, FALSE otherwise. */ public function isResettable(); /** * Returns whether this link can be translated. * * @return bool * TRUE if the link can be translated, FALSE otherwise. */ public function isTranslatable(); /** * Returns whether this link can be deleted. * * @return bool * TRUE if the link can be deleted, FALSE otherwise. */ public function isDeletable(); /** * Returns the route name, if available. * * @return string * The name of the route this menu link links to. */ public function getRouteName(); /** * Returns the route parameters, if available. * * @return array * An array of parameter names and values. */ public function getRouteParameters(); /** * Returns a URL object containing either the external path or route. * * @param bool $title_attribute * (optional) If TRUE, add the link description as the title attribute if * the description is not empty. * * @return \Drupal\Core\Url * A URL object containing either the external path or route. */ public function getUrlObject($title_attribute = TRUE); /** * Returns the options for this link. * * @return array * An associative array of options. */ public function getOptions(); /** * Returns any metadata for this link. * * @return array * The metadata for the menu link. */ public function getMetaData(); /** * Updates the definition values for a menu link. * * Depending on the implementation details of the class, not all definition * values may be changed. For example, changes to the title of a static link * will be discarded. * * In general, this method should not be called directly, but will be called * automatically from MenuLinkManagerInterface::updateDefinition(). * * @param array $new_definition_values * The new values for the link definition. This will usually be just a * subset of the plugin definition. * @param bool $persist * TRUE to have the link persist the changed values to any additional * storage. * * @return array * The plugin definition incorporating any allowed changes. */ public function updateLink(array $new_definition_values, $persist); /** * Deletes a menu link. * * In general, this method should not be called directly, but will be called * automatically from MenuLinkManagerInterface::removeDefinition(). * * This method will only delete the link from any additional storage, but not * from the plugin.manager.menu.link service. * * @throws \Drupal\Component\Plugin\Exception\PluginException * If the link is not deletable. */ public function deleteLink(); /** * Returns the name of a class that can build an editing form for this link. * * To instantiate the form class, use an instance of the * \Drupal\Core\DependencyInjection\ClassResolverInterface, such as from the * class_resolver service. Then call the setMenuLinkInstance() method on the * form instance with the menu link plugin instance. * * @todo Add a code example. https://www.drupal.org/node/2302849 * * @return string * A class that implements \Drupal\Core\Menu\Form\MenuLinkFormInterface. */ public function getFormClass(); /** * Returns route information for a route to delete the menu link. * * @return \Drupal\Core\Url|null * A Url object, or NULL if there is no route (e.g. when the link is not * deletable). */ public function getDeleteRoute(); /** * Returns route information for a custom edit form for the menu link. * * Plugins should return a value here if they have a special edit form, or if * they need to define additional local tasks, local actions, etc. that are * visible from the edit form. * * @return \Drupal\Core\Url|null * A Url object, or NULL if there is no route because there is no custom * edit route for this instance. */ public function getEditRoute(); /** * Returns route information for a route to translate the menu link. * * @return \Drupal\Core\Url|null * A Url object, or NULL if there is no route (e.g. when the link is not * translatable). */ public function getTranslateRoute(); }