Aggiunta di un collegamento alla pagina / admin / config [chiuso]


8

Sto imparando come creare un modulo per Drupal 8. Ho letto numerosi tutorial di base, ma non ne ho visto uno che parla dell'aggiunta di un link alla pagina / admin / config .

Più specificamente, vorrei aggiungere il collegamento nell'area SERVIZI WEB .

inserisci qui la descrizione dell'immagine


Perché questo è chiuso come "poco chiaro"? È abbastanza chiaro e l'amministratore di chiusura ha modificato sia la domanda che la risposta accettata. Questo appartiene qui o no?
user1359

Descrivere un'attività e dire che ho letto molti tutorial senza dire che cosa suggerivano quei tutorial e perché non hanno funzionato per l'OP non sta facendo una domanda.
kiamlaluno

La domanda è stata modificata per rimuovere un tag; la risposta è stata modificata per ripristinare una modifica suggerita errata. Né le modifiche hanno cambiato il significato dei post.
kiamlaluno

Risposte:


14

Puoi farlo allo stesso modo di qualsiasi altra voce di menu, devi solo scegliere la posizione giusta nella struttura del menu:

Per prima cosa aggiungi il percorso di amministrazione in mymodule.routing.yml:

/admin/config/...

Quindi inserisci la voce di menu in mymodule.links.menu.yml e posizionala sotto il genitore giusto:

mymodule.action_method_name:
  title: 'My Title'
  description: 'My Description'
  parent: system.admin_config
  route_name: 'mymodule.action_method_name'

Per i sottomenu in admin / config scegli il genitore corrispondente, ad esempio "Regionale e lingua" è:

parent: system.admin_config_regional

Per "Servizi Web":

parent: system.admin_config_services

C'è un modo semplice per trovare il valore principale per un menu di amministrazione specifico? Sto scavando nel core, ma può essere difficile capire da quale modulo core provenga un determinato menu.
James Shields,

È un ottimo punto ed è molto utile! Voglio fare una piccola osservazione però: nel tuo esempio dovrebbe esserci ":" dopo action_method_name. Ecco un esempio funzionante: mymodule.action_method_name: title: 'My Title'Saluti!
Nikolay Borisov,

Ho una domanda simile come James. Come trovo il nome principale del menu?
Pant

Puoi trovarli nel *.links.menu.ymlmodulo di sistema: cgit.drupalcode.org/drupal/tree/core/modules/system/…
4k4,

1
@jpt, la domanda originale riguarda "Web Services". È abbastanza ovvio che "People" proviene dal modulo utente, ma se non sai che potresti fare una rapida ricerca in tutti i file * .links.menu.yml presenti nell'installazione di Drupal.
4k4

5

È molto semplice creare un collegamento in Servizi all'indirizzo /admin/config.

In questo esempio supporrò che il contenuto della pagina di amministrazione, chiamato impostazioni, sarà riempito da un controller interno src/Controller/MymoduleController.php

Sulla radice del modulo hai due file mymodule.routing.ymle mymodule.links.menu.yml.

Nel mymodule.links.menu.ymlfile puoi scrivere questo:

mymodule.settings:
  title: 'My module settings page'
  parent: system.admin_config_services
  description: 'Admin settings page link'
  route_name: mymodule.settings

E a mymodule.routing.ymlquesto:

mymodule.settings:
  path: '/admin/config/services/mymodule'
  defaults:
    _controller: '\Drupal\quotesapi\Controller\MymoduleController::settings'
    _title: 'My module settings'
  requirements:
    _permission: 'administer site configuration'

Quindi puoi impostare il contenuto della pagina con le impostazioni della funzione del controller () Ma questo non rientra nell'ambito della tua domanda.

Spero che sia d'aiuto!


0

Ho trovato questo modulo per risolvere le mie esigenze in un modo molto semplice da usare:

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

Puoi trovare le istruzioni complete su come configurarlo nell'URL sopra.

Utilizzo del codice:

<?php print config_pages_get('footer', 'field_footer_copyright'); ?>

Dove footer è l'argomento @Type e si riferisce al tipo di pagina di configurazione che stai chiamando.


Non ha funzionato. Come posso eseguire il debug di ciò che è sbagliato.
Romisha Aggarwal,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.