You are here

public function UltimenuManager::buildFlyout in Ultimenu 8.2

Returns the renderable array region data.

Parameters

string $region: The string identifier for a Ultimenu region. e.g. "ultimenu_main_about".

array $config: The config available for the menu tree.

Return value

array The region data.

Overrides UltimenuManagerInterface::buildFlyout

1 call to UltimenuManager::buildFlyout()
UltimenuManager::getFlyout in src/UltimenuManager.php
Returns the flyout if available.

File

src/UltimenuManager.php, line 510

Class

UltimenuManager
Implements UltimenuManagerInterface.

Namespace

Drupal\ultimenu

Code

public function buildFlyout($region, array $config) {
  $build = $content = [];
  $reverse = FALSE;
  $count = 0;
  if (!empty($config['has_submenu'])) {
    $reverse = !empty($config['submenu_position']) && $config['submenu_position'] == 'bottom';
    $content[] = $this->tree
      ->loadSubMenuTree($config['menu_name'], $config['mlid'], $config['title']);
  }
  if ($blocks = $this
    ->getBlocksByRegion($region, $config)) {
    $content[] = $blocks;
    $count = count($blocks);
  }
  if ($content = array_filter($content)) {
    $config['count'] = $count;
    $build['content'] = $reverse ? array_reverse($content, TRUE) : $content;
    $build['#config'] = $config;
    $build['#region'] = $region;
    $build['#sorted'] = TRUE;
    $attributes['class'][] = 'ultimenu__region';

    // Useful to calculate grids.
    if ($count) {
      $attributes['class'][] = 'region';
      $attributes['class'][] = 'region--count-' . $count;
    }

    // Add the region theme wrapper for the flyout.
    $build['#attributes'] = $attributes;
    $build['#theme_wrappers'][] = 'region';
  }
  return $build;
}