通常のメニューのサブセットであるメインメニューを作成する必要があります。設計チームは、ユーザーがメインメニューに最も重要なリンクのみを持ち、すべてを持たないほうがよいと考えています。一部のリンクはトップレベルのメニューであり、一部はサブメニューです。このため、ドロップダウンとしてメニューリンクアイテムフォームにフィールドを追加できることを望んでいました。リンクを作成するとき、ユーザーはこのドロップダウンを使用して "promoteToMainMenuAsBigLink"または "promoteToMainMenuAsSmallLink"を作成するか、何も指定しないでメインメニューに項目を表示しないようにすることができます。
このDrupal 7ソリューションと同様のソリューションを探していますが、Drupal 8を探しています。
「expanded」の横のテーブルmenu_link_content_dataに列を追加できることを望んでいました。この情報をd7ソリューションに示されているような他のテーブルに記録する必要がないことを望んでいました。
私が作成したカスタムモジュールのリンクフォームにフィールドを追加することができました。テストのために、最初にテキストフィールドのみを追加しました。
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
);
}
}
フィールドは確かにリンクフォームに表示されますが、記録されることはありません。
誰かがこれを手伝ってくれる?