web-dev-qa-db-ja.com

メニュー項目の追加ページでデフォルトで「展開して表示」を確認する方法

[メニュー項目の追加]ページの[展開して表示]チェックボックスをデフォルトで選択する必要があります。

私は 'expand_menu_items'モジュールを作成し、hook_form_alter関数を試してIDを取得しました。これは明らかに 'menu_link_content_menu_link_content_form'です。

#default_valueを探していますが、いくつかあり、それらを「TRUE」に設定してみましたが、ページに影響を与えていません(xdebugは値をtrueと表示しています)。何が悪いのでしょうか?

同様の質問がここにあります:

これが関数コードです:

function expand_menu_items_form_alter($form, FormStateInterface &$form_state, $form_id) {
if ($form_id == 'menu_link_content_menu_link_content_form') {
    // $form['expanded']['#default_value'] = true; // Doesn't work.
    $form['expanded']['widget']['value']['#default_value'] = true; // Doesn't work either.

}

}

以下は、問題のフォームページの画像です。

enter image description here

2
RominRonin

メニューリンクエンティティのデフォルト値を設定するには、 hook_ENTITY_TYPE_create を使用します。

use Drupal\menu_link_content\MenuLinkContentInterface;

/**
 * Implements hook_ENTITY_TYPE_create() for menu_link_content.
 */
function mymodule_menu_link_content_create(MenuLinkContentInterface $menu_link_content) {
  $menu_link_content->expanded->value = 1;
}
4
4k4

「展開して表示-常に」モジュールが答えかもしれません。

https://www.drupal.org/project/show_as_expanded_always

0
user580307