Como posso adicionar um link de login ao menu "Navegação principal"?
Quando um usuário clica no link, ele deve ser levado à página / user / login. Após o login, o link deve mudar para "Logout" em vez de "Login".
Existe alguma maneira de adicionar esse link?
8
navigation
GTS Joe
fonte
fonte
Respostas:
Não precisamos depender do tema do Bootstrap ou de nossas habilidades de programação para mover o link " Logout " do sistema em qualquer outro menu. Drupal nos permite torná-lo facilmente.
Além disso, podemos apenas criar dois links personalizados " Faça login aqui por favor " e " Tire-me de lá " com os caminhos / user / login e / user / logout relativamente. Isso é melhor porque, diferentemente do link "Logoff" do sistema, criamos quantos links de logoff / logout desejamos com atributos personalizados. Quando o usuário fez login, eles verão apenas " o link Sair " e vice-versa. A única ressalva é que você provavelmente verá os dois links juntos porque está logado no momento do teste dos links. E isso é normal, pois você tem a permissão " Vincular a qualquer página " como administrador. Desative essa permissão e tente novamente.
fonte
1) menu Editar e adicione o link de logout.
2) Agora tudo o que você precisa fazer é configurar o bloco de links do menu principal
Em Funções, marque ☑ Usuários autenticados e também ☑ Administrador
3) Agora crie outro Menu (
/admin/structure/menu
) que possui o link "login" e todos os outros links de menu necessários.4) Em seguida, vá para os blocos (
/admin/structure/block
) no menu principal (supondo que você esteja usando Bartik, pode ter um nome diferente se estiver usando um tema personalizado), clique em adicionar e adicione o menu que você acabou de criar e configure-o. Desta vez, para Funções, apenas a marca de seleção ☑ Anônimofonte
:)
Existe uma maneira melhor de fazer isso. O que você deseja fazer é criar seu próprio plug-in e estender a classe MenuLinkDefault. O melhor lugar para procurar é o módulo Drupal / User, que fornece a implementação LoginLogoutMenuLink.
Você pode definir seu próprio plugin se quiser, por exemplo, alterar o texto ou a lógica. Como alternativa, você pode simplesmente apontar para o plug-in existente para economizar tempo e simplesmente colocar o implemento existente. Aqui está um exemplo de código:
Versão simples:
Crio
my_module/my_module.links.menu.yml
Versão avançada:
my_module/src/Plugin/Menu/
pastanamespace Drupal\my_module\Plugin\Menu;
class LoginLogoutMenuLink extends MenuLinkDefault
paraclass MyLoginLogoutMenuLink extends MenuLinkDefault
my_module.links.menu.yml
como acima, mas certifique-se de nomear a classe como a nomeou agora e aponte-a para o seu módulo. Veja o exemplo abaixo.Você
my_module/src/Plugin/Menu/MyLoginLogoutMenuLink.php
deve ter a seguinte aparência:Você
my_module/my_module.links.menu.yml
deve ter a seguinte aparência:Espero que isso ajude alguém.
fonte
Você pode fazer isso com o tema Bootstrap 3 Drupal 8, pois esse tema fornece esse recurso por padrão. Estou postando a imagem do meu site de teste do drupal 8. Um com a página de login e o outro com a página de logout.
Você está parecendo esse tipo de coisa?
Siga os seguintes passos.
1. Vá para Estruturas> Blocos. E certifique-se da seguinte configuração na seção Navegação.
2. Vá para Estruturas> Menus> Menu Conta do usuário e desative Minha conta, como mostrado na imagem a seguir.
Portanto, seu menu de navegação principal deve mostrar apenas o login e o logout, como eu publiquei no primeiro par de imagens.
fonte
Se você usar o subtema Bootstrap, poderá modificar este código para atender às suas necessidades:
Coloque esse código em page.tpl.php no subtema / templates / dentro do bloco, onde você precisa:
Coloquei depois da linha 90, caso em que não entra em colapso em um dispositivo móvel, se for necessário que seja dobrado depois:
fonte
Programaticamente, você pode fazer isso através do
.links.menu.yml
arquivo do seu próprio módulo . A seguir, esses links são colocados no menu "Principal":Como o "route_name" que cada um deles está chamando já especifica o requisito de logoff / logout (consulte https://api.drupal.org/api/drupal/core%21modules%21user%21user.routing.yml/8.4.x ), os links serão exibidos dependendo do status de logon.
fonte