You are here

public function UltimenuManager::attach in Ultimenu 8.2

Returns array of needed assets suitable for #attached property.

Parameters

array $config: The config which determine what library to attach.

Return value

array The supported libraries.

Overrides UltimenuManagerInterface::attach

1 call to UltimenuManager::attach()
UltimenuManager::preRenderBuild in src/UltimenuManager.php
Builds the Ultimenu outputs as a structured array ready for ::renderer().

File

src/UltimenuManager.php, line 232

Class

UltimenuManager
Implements UltimenuManagerInterface.

Namespace

Drupal\ultimenu

Code

public function attach(array $config = []) {
  $load = [];
  $load['library'][] = 'ultimenu/ultimenu';
  if (!empty($config['skin_basename'])) {
    $load['library'][] = 'ultimenu/skin.' . $config['skin_basename'];
  }
  if (!empty($config['orientation']) && strpos($config['orientation'], 'v') !== FALSE) {
    $load['library'][] = 'ultimenu/vertical';
  }
  if (!empty($config['ajaxify'])) {
    $load['library'][] = 'ultimenu/ajax';
  }
  if (empty($goodies['no-extras'])) {
    $load['library'][] = 'ultimenu/extras';
  }

  // Specific for main navigation.
  if ($config['menu_name'] == 'main') {
    $canvas_skin = empty($config['canvas_skin']) ? 'scalein' : $config['canvas_skin'];
    $load['library'][] = 'ultimenu/hamburger';
    $load['library'][] = 'ultimenu/offcanvas.' . $canvas_skin;

    // Optional if using the provided configuration.
    if (!empty($config['canvas_off']) && !empty($config['canvas_on'])) {
      $js_config = [
        'canvasOff' => trim(strip_tags($config['canvas_off'])),
        'canvasOn' => trim(strip_tags($config['canvas_on'])),
      ];
      $load['drupalSettings']['ultimenu'] = $js_config;
    }
  }
  if ($mw = $this
    ->getSetting('ajaxmw')) {
    $load['drupalSettings']['ultimenu']['ajaxmw'] = $mw;
  }
  $this->moduleHandler
    ->alter('ultimenu_attach', $load, $attach);
  return $load;
}