logo

Extra Block Types (EBT) - Nuova esperienza con Layout Builder❗

Extra Block Types (EBT) - tipi di blocchi stilizzati e personalizzabili: Slideshows, Tabs, Cards, Accordion e molti altri. Impostazioni integrate per sfondo, DOM Box, plugin javascript. Vivi oggi il futuro della costruzione dei layout.

Demo moduli EBT Scarica moduli EBT

❗Extra Paragraph Types (EPT) - Nuova esperienza con Paragraphs

Extra Paragraph Types (EPT) - insieme di moduli basati su paragrafi in modo analogo.

Demo moduli EPT Scarica moduli EPT

Scorri
04/10/2025, by Ivan

Menu

Ora che abbiamo creato un segnaposto per la nostra pagina delle impostazioni del modulo, aggiungiamo un link al menu. Le istruzioni qui sotto mostrano come creare un link di menu al modulo hello_world nella sezione «Sviluppo» della pagina «Amministrazione > Configurazione» (http://example.com/admin/config).

Nella cartella principale del vostro modulo create un nuovo file chiamato hello_world.links.menu.yml e aggiungete il seguente contenuto:

hello_world.admin:
  title: 'Hello module settings'
  description: 'example of how to make an admin settings page link'
  parent: system.admin_config_development
  route_name: hello_world.content
  weight: 100

Notate che la prima riga riserva uno spazio dei nomi, come nel nostro esempio di file di routing. Prestate anche attenzione all’uso del nostro nome di rotta nella quinta riga (utilizziamo lo spazio dei nomi dalla prima riga dell’esempio di file di routing). Titolo e descrizione verranno mostrati nella sezione «Sviluppo». Notate che la riga parent descrive il link genitore per il menu. In altre parole, il link di menu verrà creato sotto admin, config, development.

Questo aggiungerà un link al percorso specificato in hello_world.content (in questo esempio definito in hello_world.routing.yml) nelle pagine di amministrazione del vostro sito, nella scheda «Configurazione» (URL /admin/config) sotto la sezione «Sviluppo». Naturalmente sarà necessario svuotare la cache affinché le modifiche abbiano effetto.

Dopo aver svuotato la cache troverete il link di menu «Impostazioni del modulo Hello» nella sezione «Sviluppo» della pagina di configurazione. Facendo clic sul link verrà richiamato il modulo hello_world.

Consigli aggiuntivi

Il file .links.menu.yml è abbastanza flessibile. Potete anche usarlo per collegarvi a risorse esterne o tramite un link interno:

hello_world.admin:
  title: 'Hello module settings'
  description: 'example of how to make an admin settings page link'
  parent: system.admin_config_development
  url: http://example.com/this-is-some-example
  weight: 100
hello_world.admin2:
  title: 'Hello module settings'
  description: 'example of how to make an admin settings page link'
  parent: system.admin_config_development
  url: internal:/some-internal-path

 

Non modificabile dall’interfaccia:

Notate che quando create link di menu utilizzando file yml e moduli personalizzati in questo modo, ottenete link di menu non modificabili dall’interfaccia utente. Potete modificare i link solo tramite il file yml. Essi sono considerati gestiti dal modulo e non amministrativi. Quando fate clic sul pulsante di modifica per la voce di menu, ricevete il messaggio «Questo link è fornito dal modulo XXX. Il titolo e il percorso non possono essere modificati».

not-editable-menu-link

Per creare link di menu modificabili, dovete farlo in questo modo:

  $my_menu = \Drupal::entityTypeManager()->getStorage('menu_link_content')
    ->loadByProperties(['menu_name' => 'my-menu-name']);
  foreach ($my_menu as $menu_item) {
    $parent_id = $menu_item->getParentId();
    if (!empty($parent_id)) {
      $top_level = $parent_id;
      break;
    }
  }
  $menu_link = MenuLinkContent::create([
    'title' => 'My menu link title',
    'link' => ['uri' => 'internal:/my/path'],
    'menu_name' => 'my-menu-name',
    'parent' => $top_level,
    'expanded' => TRUE,
    'weight' => 0,
  ]);
  $menu_link->save();