function menu_item_extras_preprocess_block in Menu Item Extras 8
Same name and namespace in other branches
- 8.2 menu_item_extras.module \menu_item_extras_preprocess_block()
 
Implements hook_preprocess_block().
File
- ./
menu_item_extras.module, line 52  - Adds body field to the menu item.
 
Code
function menu_item_extras_preprocess_block(&$variables) {
  // Menus are built with #theme 'menu__MENU_NAME' form the the MenuLinkTree
  // class. We need to build menus supported by menu_item_extras with the
  // default #theme menu, to be able to add suggestions in the good order.
  if (isset($variables['content']['#menu_name'])) {
    $menu_name = $variables['content']['#menu_name'];
    $allowed_menus = \Drupal::configFactory()
      ->get('menu_item_extras.settings')
      ->get('allowed_menus');
    if (!empty($allowed_menus) && in_array($menu_name, $allowed_menus)) {
      $variables['content']['#theme'] = 'menu';
      // Pass region name to the suggestions_menu_alter for
      // the region suggestion.
      $block_id = $variables['elements']['#id'];
      /** @var \Drupal\Core\Config\Entity\ConfigEntityStorageInterface $block_storage */
      $block_storage = \Drupal::entityTypeManager()
        ->getStorage('block');
      /** @var \Drupal\block\BlockInterface $block */
      $block = $block_storage
        ->load($block_id);
      $variables['content']['#attributes']['data-region'] = $block
        ->getRegion();
    }
  }
}