public function MenuLinkItem::fieldSettingsForm in Menu Link (Field) 8
Same name and namespace in other branches
- 2.0.x src/Plugin/Field/FieldType/MenuLinkItem.php \Drupal\menu_link\Plugin\Field\FieldType\MenuLinkItem::fieldSettingsForm()
 
Returns a form for the field-level settings.
Invoked from \Drupal\field_ui\Form\FieldConfigEditForm to allow administrators to configure field-level settings.
Parameters
array $form: The form where the settings form is being included in.
\Drupal\Core\Form\FormStateInterface $form_state: The form state of the (entire) configuration form.
Return value
array The form definition for the field settings.
Overrides FieldItemBase::fieldSettingsForm
File
- src/
Plugin/ Field/ FieldType/ MenuLinkItem.php, line 109  
Class
- MenuLinkItem
 - Defines a menu link field type which stores the link, parent and menu.
 
Namespace
Drupal\menu_link\Plugin\Field\FieldTypeCode
public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
  $form = parent::fieldSettingsForm($form, $form_state);
  $menu_options = $this
    ->getMenuNames();
  $form['available_menus'] = [
    '#type' => 'checkboxes',
    '#title' => $this
      ->t('Available menus'),
    '#default_value' => $this
      ->getSetting('available_menus'),
    '#options' => $menu_options,
    '#description' => $this
      ->t('The menus available to place links in for this kind of entity.'),
    '#required' => TRUE,
  ];
  $parent_options = [];
  // Make sure the setting is normalized to an associative array.
  $available_menus = array_filter($this
    ->getSetting('available_menus'));
  $available_menus = array_combine($available_menus, $available_menus);
  foreach ($available_menus as $name) {
    if (isset($menu_options[$name])) {
      $parent_options["{$name}:"] = $menu_options[$name];
    }
  }
  $form['default_menu_parent'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Default menu for new links'),
    '#default_value' => $this
      ->getSetting('default_menu_parent'),
    '#options' => $parent_options,
  ];
  return $form;
}