Saját beállítás-csoport készítése Drupal 7 és Drupal 8 oldalon

Egy webhely készítésénél gyakran van szükség olyan modulok fejlesztésére, amelyeket csak az adott oldalon használunk fel. Jó lenne ezek beállítását egy helyre csoportosítani. Ilyesmire gondolok: Drupal 7 beállítás-csoport

Drupal 7 alatt a megoldás egy hook_menu() implementáció:

/**
 * Implements hook_menu().
 */
function foobar_profile_menu() {
  $items = array();
  $items['admin/config/foobar'] = array(
    'title' => 'Foobar',
    'description' => 'Foobar settings group.',
    'page callback' => 'system_admin_menu_block_page',
    'access arguments' => array('access administration pages'),
    'file' => 'system.admin.inc',
    'file path' => drupal_get_path('module', 'system'),
  );
  return $items;
}

Drupal 8 alatt ez a következőképpen néz ki:

Ha foobar_profile a neve a modulnak, amihez hozzá akarjuk adni, akkor először is kell egy foobar_profile.routing.yml fájl a modul könyvtárába a következő tartalommal:

foobar_profile.admin_index:
  path: '/admin/config/foobar'
  defaults:
    _controller: '\Drupal\system\Controller\SystemController::systemAdminMenuBlockPage'
    _title: 'Foobar group'
  requirements:
    _permission: 'access administration pages'

foobar_profile.form:
  path: '/admin/config/foobar/foobar-menu-item'
  defaults:
    _form: '\Drupal\foobar_profile\Form\FoobarForm'
    _title: 'Foobar Form'
  requirements:
    _permission: 'access administration pages'

Illetve szükség lesz egy foobar_profile.links.menu.yml fájlra is:

foobar_profile.admin_index:
  title: Foobar
  route_name: foobar_profile.admin_index
  parent: system.admin_config
  description: 'Foobar description.'
  position: left
  weight: -20

foobar_profile.form:
  title: 'Foobar menu'
  parent: foobar_profile.admin_index
  description: 'Foobar menu description.'
  weight: -10
  route_name: foobar_profile.form

Arra figyeljünk, hogy a links.menu.yml fájlban található parent és route_name értékek illeszkedjenek a routing.yml fájlban megadott bejegyzések kulcsaihoz.