¿Cómo puedo agregar un enlace de inicio de sesión al menú "Navegación principal"?
Cuando un usuario hace clic en el enlace, debe llevarlo a la página / user / login. Una vez que inician sesión, el enlace debe cambiar para decir "Cerrar sesión" en lugar de "Iniciar sesión".
¿Hay alguna forma de agregar dicho enlace?
8
navigation
GTS Joe
fuente
fuente
Respuestas:
No necesitamos depender del tema Bootstrap o de nuestras habilidades de programación para mover el enlace " Cerrar sesión " del sistema en cualquier otro menú. Drupal nos permite hacerlo fácilmente.
Además, podemos crear dos enlaces personalizados de " Iniciar sesión aquí por favor " y " Sáqueme de allí " con las rutas / user / login y / user / logout relativamente. Esto es mejor porque, a diferencia del enlace "Cerrar sesión" del sistema, nos permite crear tantos enlaces de inicio / cierre de sesión como queramos con atributos personalizados. Cuando el usuario inicie sesión, solo verá el enlace " Cerrar sesión " y viceversa. La única advertencia es que probablemente veas ambos enlaces juntos porque estás conectado al momento de probar los enlaces. Y esto es normal ya que tiene permiso de " Enlace a cualquier página " como administrador. Deshabilite este permiso e intente nuevamente.
fuente
1) Menú Editar y agregue el enlace Cerrar sesión.
2) Ahora todo lo que tienes que hacer es configurar el bloque de enlaces del menú principal
Luego, en Roles, marque ☑ Usuarios autenticados y también ☑ Administrador
3) Ahora cree otro Menú (
/admin/structure/menu
) que tenga el enlace de "inicio de sesión" y todos los demás enlaces de menú que necesite.4) Luego vaya a los bloques (
/admin/structure/block
) en el Menú principal (suponiendo que esté usando Bartik, puede tener un nombre diferente si está usando un tema personalizado) haga clic en Agregar, agregue el Menú que acaba de crear y configúrelo. Esta vez para Roles, solo marca check Anónimofuente
:)
Hay una mejor manera de hacer esto. Lo que desea hacer es crear su propio complemento y extender la clase MenuLinkDefault. El mejor lugar para buscar es el módulo Drupal / Usuario que proporciona la implementación LoginLogoutMenuLink.
Puede definir su propio complemento si desea, por ejemplo, cambiar el texto o la lógica. Alternativamente, puede simplemente apuntarlo al complemento existente para ahorrar tiempo y simplemente poner el implícito existente. Aquí hay un código de muestra:
Versión simple:
Crear
my_module/my_module.links.menu.yml
Versión avanzada:
my_module/src/Plugin/Menu/
carpetanamespace Drupal\my_module\Plugin\Menu;
class LoginLogoutMenuLink extends MenuLinkDefault
aclass MyLoginLogoutMenuLink extends MenuLinkDefault
my_module.links.menu.yml
según lo anterior, pero asegúrese de nombrar la clase como la ha nombrado ahora y apunte a su módulo. Ver ejemplo a continuación.Su
my_module/src/Plugin/Menu/MyLoginLogoutMenuLink.php
debe buscar la siguiente manera:Su
my_module/my_module.links.menu.yml
debe buscar la siguiente manera:Espero que esto ayude a alguien.
fuente
Puede hacerlo con el tema Bootstrap 3 Drupal 8, ya que ese tema proporciona esta función de forma predeterminada. Estoy publicando la imagen de mi sitio de prueba de drupal 8. Uno con la página de inicio de sesión y otro con la página de cierre de sesión.
¿Estás buscando ese tipo de cosas?
Siga los siguientes pasos.
1. Vaya a Estructuras> Bloques. Y asegúrese de la siguiente configuración en la sección de Navegación.
2. Vaya a Estructuras> Menús> Menú de cuenta de usuario y desactive Mi cuenta, como se muestra en la siguiente imagen.
Por lo tanto, su menú de navegación principal debe mostrar solo Iniciar sesión y Cerrar sesión, como he publicado en el primer par de imágenes.
fuente
Si usa el subtema Bootstrap, puede modificar este código para satisfacer sus necesidades:
Pon este código en page.tpl.php en subtheme / templates / dentro del bloque, donde necesitas:
Lo puse después de la línea 90, en cuyo caso no se colapsa en un dispositivo móvil, si es necesario que se pliegue después de:
fuente
Programáticamente, puede lograr esto a través del
.links.menu.yml
archivo de su propio módulo . Lo siguiente coloca estos enlaces en el menú "Principal":Dado que el "nombre_ruta" que cada uno de estos está llamando ya especifica el requisito de inicio / cierre de sesión (consulte https://api.drupal.org/api/drupal/core%21modules%21user%21user.routing.yml/8.4.x ), los enlaces se mostrarán en función del estado de inicio de sesión.
fuente