You are here

function responsive_menu_off_canvas_add_classes in Responsive and off-canvas menu 4.4.x

Recursively adds the uuid of each menu item as a class.

Parameters

array $item: The render array of a menu item.

1 call to responsive_menu_off_canvas_add_classes()
responsive_menu_responsive_menu_off_canvas_tree_alter in ./responsive_menu.module
Implements hook_responsive_menu_off_canvas_tree_alter().

File

./responsive_menu.module, line 250
Contains procedural code.

Code

function responsive_menu_off_canvas_add_classes(array &$item) {
  if (!empty($item['original_link'])) {
    $link = $item['original_link'];
    $id = $link
      ->getPluginId();

    // User created menu link ids take the form 'menu_link_content:{uuid}'.
    if (strpos($id, ':')) {
      $parts = explode(':', $id);
    }
    else {
      $parts = explode('.', $id);
    }
    $uuid = Html::cleanCssIdentifier($parts[1]);
    $item['attributes']
      ->addClass('menu-item--' . $uuid);

    // Get the name of the menu and add it to the menu item's class list
    $link__menu_name = $link
      ->getMenuName();
    $menu_name = Html::cleanCssIdentifier($link__menu_name);
    $item['attributes']
      ->addClass('menu-name--' . $menu_name);
  }
  if (!empty($item['below'])) {
    foreach ($item['below'] as &$below) {
      responsive_menu_off_canvas_add_classes($below);
    }
  }
}