Ich muss ein Hauptmenü erstellen, das eine Teilmenge des regulären Menüs ist. Das Designteam hält es für besser, wenn der Benutzer nur die wichtigsten Links im Hauptmenü hat und nicht alles. Einige Links sind Menüs der obersten Ebene und andere Untermenüs. Zu diesem Zweck hatte ich gehofft, dem Menü-Link-Element-Formular ein Feld als Dropdown-Liste hinzufügen zu können. Beim Erstellen eines Links kann der Benutzer diese Dropdown-Liste verwenden, um "fördernToMainMenuAsBigLink" oder "fördernToMainMenuAsSmallLink" oder "keine", um das Element nicht im Hauptmenü anzuzeigen.
Ich suche nach einer ähnlichen Lösung wie diese Drupal 7-Lösung, aber nach Drupal 8.
Ich hatte gehofft, in der Tabelle menu_link_content_data neben 'erweitert' eine Spalte hinzufügen zu können. Ich hatte gehofft, diese Informationen nicht in einer anderen Tabelle wie in der d7-Lösung aufzeichnen zu müssen.
Ich konnte dem Linkformular in einem von mir erstellten benutzerdefinierten Modul ein Feld hinzufügen. Zu Testzwecken habe ich zunächst nur ein Textfeld hinzugefügt:
custom_menu.module:
function custom_menu_form_alter(&$form, FormStateInterface $form_state, $form_id) {
if($form_id == 'menu_link_content_menu_link_content_form') {
$form['promoteToMainMenu'] = array(
'#type' => 'textfield',
'#title' => t('Promote to main menu'),
'#description' => t('Promote link menu to main menu.'),
'#default_value' => '',
'#weight' => -9
);
}
}
Das Feld wird zwar im Linkformular angezeigt, aber nie aufgezeichnet.
Kann mir jemand dabei helfen?