Adicionando um link à página / admin / config [fechado]


8

Estou aprendendo a criar um módulo para o Drupal 8. Li vários tutoriais básicos, mas não vi um que falasse sobre adicionar um link à página / admin / config .

Mais especificamente, gostaria de adicionar o link na área SERVIÇOS DA WEB .

insira a descrição da imagem aqui


Por que isso é fechado como "pouco claro"? É bem claro, e o administrador final editou a pergunta e a resposta aceita. Isso pertence aqui ou não?
precisa saber é o seguinte

Descrever uma tarefa e dizer que li muitos tutoriais sem dizer o que esses tutoriais estavam sugerindo e por que eles não funcionaram no OP não está fazendo uma pergunta.
Kiamlaluno

A pergunta foi editada para remover uma tag; a resposta foi editada para reverter uma edição sugerida incorreta. Nenhuma das edições alterou o significado das postagens.
Kiamlaluno

Respostas:


14

Você pode fazer isso da mesma maneira que qualquer outro item de menu, basta escolher a posição correta na estrutura do menu:

Primeiro adicione o caminho do administrador no seu mymodule.routing.yml:

/admin/config/...

Segundo, coloque o item de menu em mymodule.links.menu.yml e coloque-o sob o pai correto:

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

Para os submenus em admin / config, você escolhe o pai correspondente, por exemplo "Regional E Idioma" é:

parent: system.admin_config_regional

Para "Serviços da Web":

parent: system.admin_config_services

Existe uma maneira fácil de encontrar o valor pai para um menu de administrador específico? Eu estive pesquisando o núcleo, mas pode ser complicado descobrir de que módulo principal um menu específico vem.
James Shields

É um ponto muito bom e é muito útil! Quero fazer uma pequena observação: no seu exemplo, deve haver ":" após o action_method_name. Aqui está um exemplo de trabalho: mymodule.action_method_name: title: 'My Title'Saúde!
Nikolay Borisov

Eu tenho uma pergunta semelhante como James. Como encontro o nome do pai do menu?
Pant

Você pode encontrá-los no *.links.menu.ymlmódulo do sistema: cgit.drupalcode.org/drupal/tree/core/modules/system/…
4k4

11
@jpt, a pergunta original é sobre "Serviços da Web". É meio óbvio que "Pessoas" é do módulo do usuário, mas se você não souber, poderá fazer uma pesquisa rápida em todos os arquivos * .links.menu.yml que você possui na instalação do Drupal.
4k4

5

É muito simples criar um link em Serviços em /admin/config.

Neste exemplo, vou supor que o conteúdo da página de administração, chamado de configurações, será preenchido por um controlador dentro src/Controller/MymoduleController.php

Na raiz do seu módulo, você tem dois arquivos mymodule.routing.ymle mymodule.links.menu.yml.

No mymodule.links.menu.ymlarquivo, você pode escrever isto:

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

E com mymodule.routing.ymlisso:

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

Depois, você pode definir o conteúdo da página com as configurações da função do controlador (). Mas isso está fora do escopo da sua pergunta.

Espero que ajude!


0

Encontrei este módulo para resolver minhas necessidades de uma maneira muito fácil de usar:

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

Você pode encontrar instruções completas sobre como configurá-lo no URL acima.

Uso do código:

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

Onde rodapé é o argumento @Type e refere-se ao tipo de página de configuração que você está chamando.


Não funcionou. Como posso depurar o que está errado.
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.