Pasar al contenido principal

Cargando...

Añadir sugerencias de diferentes plantillas según el rol del usuario

Añadir sugerencias de diferentes plantillas según el rol del usuario

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...

Sugestions user role

 

Añadir nuevo comentario

Este campo no se mostrará públicamente.