function micon_menu_form_node_form_alter in Micon 8
Same name and namespace in other branches
- 2.x micon_menu/micon_menu.module \micon_menu_form_node_form_alter()
Implements hook_form_BASE_FORM_ID_alter().
File
- micon_menu/
micon_menu.module, line 70 - Contains micon_menu.module.
Code
function micon_menu_form_node_form_alter(array &$form, FormStateInterface $form_state, $form_id) {
if (function_exists('menu_ui_form_node_form_alter')) {
menu_ui_form_node_form_alter($form, $form_state, $form_id);
if (isset($form['menu'])) {
$node = $form_state
->getFormObject()
->getEntity();
$defaults = menu_ui_get_menu_link_defaults($node);
$options = [];
if ($defaults['entity_id']) {
$menu = MenuLinkContent::load($defaults['entity_id']);
$options = $menu
->get('link')
->first()
->get('options')
->getValue();
}
$config = \Drupal::config('micon_menu.config');
$form['menu']['link']['title']['#weight'] = -2;
$form['menu']['link']['options']['#tree'] = TRUE;
$form['menu']['link']['options']['#weight'] = -1;
$form['menu']['link']['options']['attributes']['#tree'] = TRUE;
$form['menu']['link']['options']['attributes']['data-icon'] = [
'#type' => 'micon',
'#title' => t('Icon'),
'#default_value' => isset($options['attributes']['data-icon']) ? $options['attributes']['data-icon'] : NULL,
'#packages' => $config
->get('packages'),
'#access' => \Drupal::currentUser()
->hasPermission('use micon link'),
];
foreach (array_keys($form['actions']) as $action) {
if ($action != 'preview' && isset($form['actions'][$action]['#type']) && $form['actions'][$action]['#type'] === 'submit') {
if (($key = array_search('menu_ui_form_node_form_submit', $form['actions'][$action]['#submit'])) !== FALSE) {
$form['actions'][$action]['#submit'][$key] = 'micon_menu_menu_ui_form_node_form_submit';
}
}
}
}
}
}