Quero alterar o tipo de menu no Drupal 8. No Drupal 7, podemos conseguir isso usando hook_menu_alter
function module_menu_alter(&$items) {
$items['admin/config/people/ip-blocking/default'] = array(
'title' => 'Block IP Address',
'type' => MENU_DEFAULT_LOCAL_TASK,
);
}
Da mesma forma, quero alterar o tipo de menu no Drupal 8. Como posso fazer isso. Obrigado.
Respostas:
Embora a resposta de Linus seja ótima, ela não fornece comentários sobre sua pergunta específica:
Não existe um tipo de menu no Drupal 8. Tudo o que costumava ser um tipo agora é uma coisa completamente diferente. Rotas, links de menu, tarefas locais, ações locais. E frequentemente, você tem várias coisas. Você sempre tem uma rota (7.x usada para chamar esse tipo de retorno de chamada). Além disso, você adiciona links de menu, tarefas locais ou ações para essa rota.
Portanto, você não pode converter um link de menu em uma tarefa local, por exemplo, nem mesmo uma rota para uma tarefa local. A única coisa que você pode fazer é, por exemplo, alterar um link de menu (que não tem nada a ver com a alteração de rota mencionada acima) e criar uma nova tarefa local.
Consulte a resposta de Linus para obter links e mais informações sobre como fazer cada uma dessas coisas.
fonte
O Drupal 8 possui um novo sistema de menus, não existe
hook_menu
e não existehook_menu_alter
mais.Se você deseja alterar uma rota existente, é um pouco mais complicado em comparação com o Drupal 7.
No seu módulo, você precisa criar um arquivo de classe
YOURMODULE/src/Routing/CLASSNAME.php
que se estendaRouteSubscriberBase
:Você pode usar a classe RouteSubsciber do módulo do nó como exemplo.
Para permitir que seu RouteSubscriber seja reconhecido, você também precisa criar um
YOURMODULE.services.yml
arquivo na raiz do diretório de seus módulos:Para obter uma melhor visão do novo sistema de menus, recomendo os seguintes artigos:
Edit: Como mencionado por Berdir , o sistema de menus tem uma estrutura diferente agora, que não tem nada a ver com o sistema de menus do D7, então não existe mais um tipo de menu.
fonte