You are here

public function MenuSelectParentFormSelector::parentSelectElement in Menu Select 8

Same name and namespace in other branches
  1. 2.0.x src/MenuSelectParentFormSelector.php \Drupal\menu_select\MenuSelectParentFormSelector::parentSelectElement()

Gets a form element to choose a menu and parent.

The specific type of form element will vary depending on the implementation, but callers will normally need to set the #title for the element.

Parameters

string $menu_parent: A menu name and parent ID concatenated with a ':' character to use as the default value.

string $id: (optional) ID of a link plugin. This will exclude the link and its children from being selected.

array $menus: (optional) Array of menu names as keys and titles as values to limit the values that may be selected. If NULL, all menus will be included.

Return value

array A form element to choose a parent, or an empty array if no possible parents exist for the given parameters. The resulting form value will be a single string containing the chosen menu name and parent ID separated by a ':' character.

Overrides MenuParentFormSelector::parentSelectElement

File

src/MenuSelectParentFormSelector.php, line 15

Class

MenuSelectParentFormSelector
Override the core 'menu.parent_form_selector' service.

Namespace

Drupal\menu_select

Code

public function parentSelectElement($menu_parent, $id = '', array $menus = NULL) {

  // Instead of building out a select list, return the custom menu select tree
  // element.
  return [
    '#type' => 'menu_select_tree',
    '#menu_parent' => $menu_parent,
    '#menus' => !isset($menus) ? $this
      ->getMenuOptions($menus) : $menus,
    '#max_depth' => $this
      ->getParentDepthLimit($id),
    '#current_link_id' => $id,
  ];
}