You are here

function menu_manipulator_form_menu_link_content_form_alter in Menu Manipulator 3.0.x

Same name and namespace in other branches
  1. 8.2 menu_manipulator.module \menu_manipulator_form_menu_link_content_form_alter()
  2. 8 menu_manipulator.module \menu_manipulator_form_menu_link_content_form_alter()
  3. 2.0.x menu_manipulator.module \menu_manipulator_form_menu_link_content_form_alter()

Implements hook_form_BASE_FORM_ID_alter() for the Menu Link Content form.

@todo make $icon_list administrable.

File

./menu_manipulator.module, line 161
Contains menu_manipulator.module.

Code

function menu_manipulator_form_menu_link_content_form_alter(array &$form, FormStateInterface $form_state, $form_id) {
  $menu_link = $form_state
    ->getFormObject()
    ->getEntity();
  $menu_link_options = $menu_link->link ? $menu_link->link
    ->first()->options : [];
  $config = \Drupal::config('menu_manipulator.settings');

  // Hide icon options by default.
  $do_filter = FALSE;

  // Check if this menu is selected has been selected by user.
  if (is_array($config
    ->get('preprocess_menus_icon_list'))) {
    $do_filter = array_intersect([
      $menu_link
        ->getMenuName(),
    ], $config
      ->get('preprocess_menus_icon_list'));
  }

  // Stop now if not allowing Icons processing for this menu.
  if (!$do_filter) {
    return;
  }
  $icon_list_value = $config
    ->get('menu_link_icon_list') ?: '';
  $icon_list = menu_manipulator_prepare_associative_list($icon_list_value);
  $form['menu_link_icon'] = [
    '#type' => 'select',
    '#title' => t('Icon'),
    '#description' => t('Select icon for this menu link.'),
    '#weight' => -2,
    '#tree' => TRUE,
    '#access' => \Drupal::currentUser()
      ->hasPermission('use menu link icon'),
    '#empty_option' => t('- Select -'),
    '#options' => $icon_list,
    '#default_value' => isset($menu_link_options['icon']) ? $menu_link_options['icon'] : NULL,
  ];
  $form['actions']['submit']['#submit'][] = 'menu_manipulator_menu_link_content_form_submit';
}