将链接添加到/ admin / config页面[关闭]


8

我正在学习如何为Drupal 8创建模块。我已经阅读了许多基本教程,但是我还没有看到有关添加到/ admin / config页面的链接的教程。

更具体地说,我想在“ Web服务”区域下添加链接。

在此处输入图片说明


为什么将其关闭为“不清楚”?很明显,最后的管理员已经编辑了问题和接受的答案。这是否属于这里?
user1359

描述任务并说我阅读了许多教程,却没有说这些教程的建议,以及为什么它们对OP不起作用,这并不是在问一个问题。
kiamlaluno

该问题已被编辑以删除标签;已编辑答案,以恢复错误的建议编辑。修改均未更改帖子的含义。
kiamlaluno

Answers:


14

您可以像其他任何菜单项一样执行此操作,只需要在菜单结构中选择正确的位置即可:

首先在您的mymodule.routing.yml中添加管理路径:

/admin/config/...

其次,将菜单项放在mymodule.links.menu.yml中,并将其放在正确的父项下:

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

对于admin / config中的子菜单,请选择相应的父菜单,例如“ Regional And Language”为:

parent: system.admin_config_regional

对于“ Web服务”:

parent: system.admin_config_services

有没有一种简单的方法来查找特定管理菜单的父值?我一直在研究核心,但是弄清楚特定菜单来自哪个核心模块可能很棘手。
詹姆斯·希尔兹

这是一个很好的观点,并且非常有帮助!不过,我想作一点说明:在您的示例中,在action_method_name之后应该有“:”。这是一个有效的示例:mymodule.action_method_name: title: 'My Title'干杯!
尼古拉·鲍里索夫

我也有类似詹姆斯的问题。如何找到菜单的父名称?
裤子

你可以找到他们*.links.menu.yml:系统模块的cgit.drupalcode.org/drupal/tree/core/modules/system/...
4k4

1
@jpt,原始问题是有关“ Web服务”的。很明显,“ People”来自用户模块,但是如果您不知道可以在Drupal安装中的所有* .links.menu.yml文件中进行快速搜索。
4k4,10

5

在的“服务”下创建链接非常简单/admin/config

在此示例中,我假设管理页面上的内容(称为设置)将由内部的控制器填充 src/Controller/MymoduleController.php

在模块的根目录上,有两个文件,mymodule.routing.ymlmymodule.links.menu.yml

mymodule.links.menu.yml文件中,您可以这样写:

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

并在mymodule.routing.yml此:

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

然后,您可以使用控制器功能settings()设置页面的内容,但这超出了您的问题范围。

希望能帮助到你!


0

我发现此模块以一种非常简单的使用方式来解决我的需求:

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

您可以在上述URL中找到有关如何配置它的完整说明。

代码用法:

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

其中footer是@Type参数,它表示您正在调用的配置页的类型。


没有工作。我该如何调试出了什么问题。
罗米沙·阿格加瓦尔(Romisha Aggarwal),
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.