Добавление ссылки на страницу / admin / config [закрыто]

8

Я изучаю, как создать модуль для Drupal 8. Я прочитал множество основных учебных пособий, но я не видел ни одного, в котором говорилось бы о добавлении ссылки на страницу / admin / config .

Более конкретно, я хотел бы добавить ссылку в разделе WEB-сервисов .

введите описание изображения здесь

киамлалуно
источник
Почему это закрыто как «неясно»? Это довольно ясно, и завершающий администратор отредактировал и вопрос, и принятый ответ. Это принадлежит здесь или нет?
user1359
Описывая задачу и говоря, что я прочитал много учебников, не говоря, что предлагали эти учебники, и почему они не работали для ОП, не задает вопрос.
kiamlaluno
Вопрос был отредактирован для удаления тега; ответ был отредактирован, чтобы отменить предложенное неправильное изменение. Ни изменения не изменили смысл сообщений.
kiamlaluno

Ответы:

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 вы выбираете соответствующего родителя, например «Язык и региональные стандарты»:

parent: system.admin_config_regional

Для "Веб-сервисов":

parent: system.admin_config_services
4k4
источник
Есть ли простой способ найти родительское значение для определенного меню администратора? Я копался в ядре, но может быть сложно определить, из какого модуля ядра происходит конкретное меню.
Джеймс Шилдс
Это очень хороший момент и очень полезно! Я хочу сделать небольшое замечание: в вашем примере после action_method_name должно быть ":". Вот рабочий пример: mymodule.action_method_name: title: 'My Title'Ура!
Николай Борисов
У меня похожий вопрос, как у Джеймса. Как мне найти родительское имя меню?
Штаны
Вы можете найти их в *.links.menu.ymlсистемном модуле: cgit.drupalcode.org/drupal/tree/core/modules/system/…
4k4
1
@jpt, оригинальный вопрос о «веб-сервисах». Очевидно, что «Люди» из пользовательского модуля, но если вы не знаете, вы можете выполнить быстрый поиск по всем файлам * .links.menu.yml, которые есть в вашей установке Drupal.
4k4
5

Создать ссылку в разделе Сервисы очень просто /admin/config.

В этом примере я предположу, что содержимое на странице администратора, называемое настройками, будет заполнено контроллером внутри src/Controller/MymoduleController.php

В корне вашего модуля у вас есть два файла, mymodule.routing.ymlи mymodule.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'

Затем вы можете установить содержимое страницы с помощью настроек функции контроллера () Но это выходит за рамки вашего вопроса.

Надеюсь, поможет!

Серхио Гарсия
источник
0

Я нашел этот модуль, чтобы очень просто использовать мои потребности:

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

Вы можете найти полные инструкции о том, как настроить его в приведенном выше URL.

Использование кода:

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

Где нижний колонтитул является аргументом @Type и относится к типу страницы конфигурации, которую вы вызываете.

Эдуардо Чонгкан
источник
Не работал. Как я могу отладить что не так.
Ромиша Аггарвал