You are here

function simple_megamenu_menu_link_default_form_submit in Simple Mega Menu 2.0.x

Same name and namespace in other branches
  1. 8 simple_megamenu.module \simple_megamenu_menu_link_default_form_submit()

Submit function for menu add / edit form.

1 string reference to 'simple_megamenu_menu_link_default_form_submit'
simple_megamenu_form_menu_link_edit_alter in ./simple_megamenu.module
Implements hook_form_FORM_ID_alter().

File

./simple_megamenu.module, line 246
Contains simple_megamenu.module.

Code

function simple_megamenu_menu_link_default_form_submit($form, FormStateInterface $form_state) {
  $build_info = $form_state
    ->getBuildInfo();

  /* @var \Drupal\Core\Menu\MenuLinkDefault $menu_link_default */
  $menu_link_default = $build_info['args'][0];

  /* @var \Drupal\Core\Menu\MenuLinkManagerInterface $menu_link_manager */
  $menu_link_manager = \Drupal::service('plugin.manager.menu.link');
  $menu_link_options = $menu_link_default
    ->getOptions();
  if ($form_state
    ->getValue('simple_mega_menu')) {
    $data_simple_mega_menu = [
      'attributes' => [
        'data-simple-mega-menu' => $form_state
          ->getValue('simple_mega_menu'),
      ],
    ];
    $options = array_merge($menu_link_options, $data_simple_mega_menu);
    $menu_link_manager
      ->updateDefinition($menu_link_default
      ->getPluginId(), [
      'options' => $options,
    ]);
  }
  else {
    if (isset($menu_link_options['attributes']['data-simple-mega-menu'])) {
      unset($menu_link_options['attributes']['data-simple-mega-menu']);
      if (empty($menu_link_options['attributes'])) {
        unset($menu_link_options['attributes']);
      }
    }
    $menu_link_manager
      ->updateDefinition($menu_link_default
      ->getPluginId(), [
      'options' => $menu_link_options,
    ]);
  }
}