function menu_attributes_get_attributes in Menu Attributes 8
Get menu link attributes.
Parameters
\Drupal\Core\Menu\MenuLinkInterface $menu_link_content_plugin:
Return value
array
1 call to menu_attributes_get_attributes()
- menu_attributes_set_attributes in ./
menu_attributes.module - Set the attributes recursively on the given menu items.
File
- ./
menu_attributes.module, line 344 - Alters the menu item form to allow the administrator to specify additional attributes for the menu link
Code
function menu_attributes_get_attributes(MenuLinkInterface $menu_link_content_plugin) {
$attributes = [];
if (!$menu_link_content_plugin instanceof \Drupal\menu_link_content\Plugin\Menu\MenuLinkContent) {
return $attributes;
}
try {
$plugin_id = $menu_link_content_plugin
->getPluginId();
} catch (PluginNotFoundException $e) {
return $attributes;
}
if (strpos($plugin_id, ':') === FALSE) {
return $attributes;
}
list($entity_type, $uuid) = explode(':', $plugin_id, 2);
$entity = \Drupal::service('entity.repository')
->loadEntityByUuid($entity_type, $uuid);
if ($entity) {
$options = $entity->link
->first()->options;
$attributes[MENU_ATTRIBUTES_LINK] = isset($options[MENU_ATTRIBUTES_LINK]) ? $options[MENU_ATTRIBUTES_LINK] : [];
$attributes[MENU_ATTRIBUTES_ITEM] = isset($options[MENU_ATTRIBUTES_ITEM]) ? $options[MENU_ATTRIBUTES_ITEM] : [];
// Class attribute needs special handling because it's stored as an array.
if (isset($attributes[MENU_ATTRIBUTES_LINK]['class'])) {
$attributes[MENU_ATTRIBUTES_LINK]['class'] = explode(' ', $attributes[MENU_ATTRIBUTES_LINK]['class']);
}
if (isset($attributes[MENU_ATTRIBUTES_ITEM]['class'])) {
$attributes[MENU_ATTRIBUTES_ITEM]['class'] = explode(' ', $attributes[MENU_ATTRIBUTES_ITEM]['class']);
}
}
return $attributes;
}