Desde drupal.org en / node / 2122241:
Alterar enlaces de menú y agregar enlaces de menú dinámicamente
Los elementos de menú definidos estáticamente pueden modificarse usando hook_menu_links_discovered_alter () (pero tenga en cuenta que no hay hook_menu_link_discovered (), los enlaces de menú se crean a partir de los archivos .yml como se explicó anteriormente). Este gancho también se puede usar para agregar nuevos elementos de menú dinámico.
Con mayor frecuencia, es posible que desee utilizar una clase derivadora para agregar nuevos complementos de enlace de menú. Por ejemplo, los enlaces de menú proporcionados por Vistas se agregan en views.links.menu.yml, que especifica la clase de derivador \ Drupal \ views \ Plugin \ Derivative \ ViewsMenuLink.
Finalmente, puede usar el administrador de complementos directamente para agregar, actualizar y eliminar definiciones.
Probablemente podría usar hook_menu_links_discovered_alter para su escenario.
Editar: desea editar el permiso para acceder a ese enlace, por lo que automáticamente no aparece en el menú.
Lea en drupal.org: / node / 2311427
Drupal 8
En Drupal 8, puede admitir permisos dinámicos haciendo referencia a una función que definirá dinámicamente esos permisos. Esta devolución de llamada define los permisos para el módulo de filtro del núcleo.
// in filter.permissions.yml
permission_callbacks:
- Drupal\filter\FilterPermissions::permissions
// in FilterPermissions.php
class FilterPermissions {
public function permissions() {
$permissions = [];
// Generate permissions for each text format. Warn the administrator that any
// of them are potentially unsafe.
/** @var \Drupal\filter\FilterFormatInterface[] $formats */
$formats = $this->entityManager->getStorage('filter_format')->loadByProperties(['status' => TRUE]);
uasort($formats, 'Drupal\Core\Config\Entity\ConfigEntityBase::sort');
foreach ($formats as $format) {
if ($permission = $format->getPermissionName()) {
$permissions[$permission] = [
'title' => $this->t('Use the @label text format', ['@url' => $format->url(), '@label' => $format->label()]),
'description' => String::placeholder($this->t('Warning: This permission may have security implications depending on how the text format is configured.')),
];
}
}
return $permissions;
}
}
También debe leer este artículo https://www.lullabot.com/articles/what-happened-to-hook_menu-in-drupal-8 (desplácese hacia abajo hasta "Control de acceso" y "Hook_Menu_Alter").
Espero que esto ayude.
hook_translated_menu_link_alter() has been replaced by hook_menu_link_load()
, no sé si es correcto o incorrecto, acabo de encontrar esto. Puede ser que puedas besarte. Si, házmelo saber también.