function responsive_menu_form_menu_link_content_form_alter in Responsive and off-canvas menu 8.2
Same name and namespace in other branches
- 8.3 responsive_menu.module \responsive_menu_form_menu_link_content_form_alter()
- 4.4.x responsive_menu.module \responsive_menu_form_menu_link_content_form_alter()
- 4.0.x responsive_menu.module \responsive_menu_form_menu_link_content_form_alter()
- 4.1.x responsive_menu.module \responsive_menu_form_menu_link_content_form_alter()
- 4.3.x responsive_menu.module \responsive_menu_form_menu_link_content_form_alter()
Implements hook_form_FORM_ID_alter() for menu_link_content_form().
See also
\Drupal\menu_link_content\Form\MenuLinkContentForm
File
- ./
responsive_menu.module, line 260 - Contains procedural code.
Code
function responsive_menu_form_menu_link_content_form_alter(&$form, FormStateInterface $form_state) {
$menu_link = $form_state
->getFormObject()
->getEntity();
$menu_link_options = $menu_link->link
->first()->options ?: [];
$flyleft = isset($menu_link_options['attributes']['flyleft']) ? TRUE : FALSE;
// Determine whether this menu item has a grandparent which means that this
// menu item is of depth 3 or greater and therefore is able to have the
// flyleft checkbox shown.
$build_info = $form_state
->getBuildInfo()['callback_object'];
$menu_link_content = $build_info
->getEntity();
$parent = $menu_link_content->parent->value;
if (!$parent) {
return;
}
$definition = \Drupal::service('plugin.manager.menu.link')
->hasDefinition($parent);
if (!$definition) {
return;
}
$parent_link = \Drupal::service('plugin.manager.menu.link')
->createInstance($parent);
$grandparent = $parent_link
->getParent();
if (!empty($grandparent)) {
$form['flyleft'] = [
'#type' => 'checkbox',
'#title' => t('Fly left'),
'#description' => t('Whether this item (and its children) should fly left instead of right'),
'#default_value' => $flyleft,
];
$form['#submit'][] = 'responsive_menu_menu_link_content_submit';
$form['actions']['submit']['#submit'][] = 'responsive_menu_menu_link_content_submit';
}
}