Publicado:
Viernes, Julio 31, 2020 - 11:57
Actualizado:
Domingo, Octubre 30, 2022 - 18:06
Añadir sugerencias de diferentes plantillas según el rol del usuario
1 minutos
Imagina que necesitas mostrar una información para un usuario con el rol "cliente" y otra diferente para otro tipo de usuario (por ejemplo "manager").
Existen numerosas opciones para realizar esta tarea, pero la más sencilla tal vez sea generar plantillas Twig diferentes según el rol del usuario.
Para esta tarea, Drupal nos proporciona el hook hook_theme_suggestions_HOOK_alter.
Código
/**
* Implements hook_theme_suggestions_HOOK_alter().
*/
function YOUR_THEME_theme_suggestions_user_alter(&$suggestions, $variables) {
// Define the view mode.
$mode = $variables['elements']['#view_mode'];
// Create a theme hook suggestion which has the view mode name in it.
$suggestions[] = 'user__' . $mode;
// Get current user.
$current_user = $variables['elements']['#user'];
// Get current user's roles.
$roles = $current_user->getRoles();
// Add suggestion per role.
foreach ($roles as $role) {
$suggestions[] = 'user__' . $mode . '__' . $role;
}
}
El código anterior generará las sugerencias para cada "view mode" y rol del usuario...
INFO: El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error visita nuestro formulario de contacto.