annotate core/lib/Drupal/Core/Menu/MenuLinkBase.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 4c8ae668cc8c
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Core\Menu;
Chris@0 4
Chris@0 5 use Drupal\Component\Plugin\Exception\PluginException;
Chris@0 6 use Drupal\Core\Cache\Cache;
Chris@0 7 use Drupal\Core\Plugin\PluginBase;
Chris@0 8 use Drupal\Core\Url;
Chris@0 9
Chris@0 10 /**
Chris@0 11 * Defines a base menu link class.
Chris@0 12 */
Chris@0 13 abstract class MenuLinkBase extends PluginBase implements MenuLinkInterface {
Chris@0 14
Chris@0 15 /**
Chris@0 16 * The list of definition values where an override is allowed.
Chris@0 17 *
Chris@0 18 * The keys are definition names. The values are ignored.
Chris@0 19 *
Chris@0 20 * @var array
Chris@0 21 */
Chris@0 22 protected $overrideAllowed = [];
Chris@0 23
Chris@0 24 /**
Chris@0 25 * {@inheritdoc}
Chris@0 26 */
Chris@0 27 public function getWeight() {
Chris@0 28 // By default the weight is 0.
Chris@0 29 if (!isset($this->pluginDefinition['weight'])) {
Chris@0 30 $this->pluginDefinition['weight'] = 0;
Chris@0 31 }
Chris@0 32 return $this->pluginDefinition['weight'];
Chris@0 33 }
Chris@0 34
Chris@0 35 /**
Chris@0 36 * {@inheritdoc}
Chris@0 37 */
Chris@0 38 public function getMenuName() {
Chris@0 39 return $this->pluginDefinition['menu_name'];
Chris@0 40 }
Chris@0 41
Chris@0 42 /**
Chris@0 43 * {@inheritdoc}
Chris@0 44 */
Chris@0 45 public function getProvider() {
Chris@0 46 return $this->pluginDefinition['provider'];
Chris@0 47 }
Chris@0 48
Chris@0 49 /**
Chris@0 50 * {@inheritdoc}
Chris@0 51 */
Chris@0 52 public function getParent() {
Chris@0 53 return $this->pluginDefinition['parent'];
Chris@0 54 }
Chris@0 55
Chris@0 56 /**
Chris@0 57 * {@inheritdoc}
Chris@0 58 */
Chris@0 59 public function isEnabled() {
Chris@0 60 return (bool) $this->pluginDefinition['enabled'];
Chris@0 61 }
Chris@0 62
Chris@0 63 /**
Chris@0 64 * {@inheritdoc}
Chris@0 65 */
Chris@0 66 public function isExpanded() {
Chris@0 67 return (bool) $this->pluginDefinition['expanded'];
Chris@0 68 }
Chris@0 69
Chris@0 70 /**
Chris@0 71 * {@inheritdoc}
Chris@0 72 */
Chris@0 73 public function isResettable() {
Chris@0 74 return FALSE;
Chris@0 75 }
Chris@0 76
Chris@0 77 /**
Chris@0 78 * {@inheritdoc}
Chris@0 79 */
Chris@0 80 public function isTranslatable() {
Chris@0 81 return (bool) $this->getTranslateRoute();
Chris@0 82 }
Chris@0 83
Chris@0 84 /**
Chris@0 85 * {@inheritdoc}
Chris@0 86 */
Chris@0 87 public function isDeletable() {
Chris@0 88 return (bool) $this->getDeleteRoute();
Chris@0 89 }
Chris@0 90
Chris@0 91 /**
Chris@0 92 * {@inheritdoc}
Chris@0 93 */
Chris@0 94 public function getOptions() {
Chris@0 95 return $this->pluginDefinition['options'] ?: [];
Chris@0 96 }
Chris@0 97
Chris@0 98 /**
Chris@0 99 * {@inheritdoc}
Chris@0 100 */
Chris@0 101 public function getMetaData() {
Chris@0 102 return $this->pluginDefinition['metadata'] ?: [];
Chris@0 103 }
Chris@0 104
Chris@0 105 /**
Chris@0 106 * {@inheritdoc}
Chris@0 107 */
Chris@0 108 public function getRouteName() {
Chris@0 109 return isset($this->pluginDefinition['route_name']) ? $this->pluginDefinition['route_name'] : '';
Chris@0 110 }
Chris@0 111
Chris@0 112 /**
Chris@0 113 * {@inheritdoc}
Chris@0 114 */
Chris@0 115 public function getRouteParameters() {
Chris@0 116 return isset($this->pluginDefinition['route_parameters']) ? $this->pluginDefinition['route_parameters'] : [];
Chris@0 117 }
Chris@0 118
Chris@0 119 /**
Chris@0 120 * {@inheritdoc}
Chris@0 121 */
Chris@0 122 public function getUrlObject($title_attribute = TRUE) {
Chris@0 123 $options = $this->getOptions();
Chris@0 124 if ($title_attribute && $description = $this->getDescription()) {
Chris@0 125 $options['attributes']['title'] = $description;
Chris@0 126 }
Chris@0 127 if (empty($this->pluginDefinition['url'])) {
Chris@0 128 return new Url($this->getRouteName(), $this->getRouteParameters(), $options);
Chris@0 129 }
Chris@0 130 else {
Chris@0 131 return Url::fromUri($this->pluginDefinition['url'], $options);
Chris@0 132 }
Chris@0 133 }
Chris@0 134
Chris@0 135 /**
Chris@0 136 * {@inheritdoc}
Chris@0 137 */
Chris@0 138 public function getFormClass() {
Chris@0 139 return $this->pluginDefinition['form_class'];
Chris@0 140 }
Chris@0 141
Chris@0 142 /**
Chris@0 143 * {@inheritdoc}
Chris@0 144 */
Chris@0 145 public function getDeleteRoute() {
Chris@0 146 return NULL;
Chris@0 147 }
Chris@0 148
Chris@0 149 /**
Chris@0 150 * {@inheritdoc}
Chris@0 151 */
Chris@0 152 public function getEditRoute() {
Chris@0 153 return NULL;
Chris@0 154 }
Chris@0 155
Chris@0 156 /**
Chris@0 157 * {@inheritdoc}
Chris@0 158 */
Chris@0 159 public function getTranslateRoute() {
Chris@0 160 return NULL;
Chris@0 161 }
Chris@0 162
Chris@0 163 /**
Chris@0 164 * {@inheritdoc}
Chris@0 165 */
Chris@0 166 public function deleteLink() {
Chris@0 167 throw new PluginException("Menu link plugin with ID '{$this->getPluginId()}' does not support deletion");
Chris@0 168 }
Chris@0 169
Chris@0 170 /**
Chris@0 171 * {@inheritdoc}
Chris@0 172 */
Chris@0 173 public function getCacheMaxAge() {
Chris@0 174 return Cache::PERMANENT;
Chris@0 175 }
Chris@0 176
Chris@0 177 /**
Chris@0 178 * {@inheritdoc}
Chris@0 179 */
Chris@0 180 public function getCacheContexts() {
Chris@0 181 return [];
Chris@0 182 }
Chris@0 183
Chris@0 184 /**
Chris@0 185 * {@inheritdoc}
Chris@0 186 */
Chris@0 187 public function getCacheTags() {
Chris@0 188 return [];
Chris@0 189 }
Chris@0 190
Chris@0 191 }