diff --git a/core/modules/user/src/Tests/UserTemplateSuggestionsTest.php b/core/modules/user/src/Tests/UserTemplateSuggestionsTest.php new file mode 100644 index 0000000..40ff0ac --- /dev/null +++ b/core/modules/user/src/Tests/UserTemplateSuggestionsTest.php @@ -0,0 +1,30 @@ +drupalCreateUser(); + + // Set the view mode. + $view_mode = 'user.my_custom_view_mode'; + $build = \Drupal::entityTypeManager()->getViewBuilder('user')->view($user, $view_mode); + + $variables['elements'] = $build; + $suggestions = \Drupal::moduleHandler()->invokeAll('theme_suggestions_user', array($variables)); + $this->assertEqual($suggestions, array('user__user_my_custom_view_mode'), 'Found expected user template suggestions.'); + } + +} diff --git a/core/modules/user/user.module b/core/modules/user/user.module index 1394b23..7b3db58 100644 --- a/core/modules/user/user.module +++ b/core/modules/user/user.module @@ -1426,3 +1426,13 @@ function template_preprocess_user(&$variables) { $variables['content'][$key] = $variables['elements'][$key]; } } + +/** + * Implements hook_theme_suggestions_HOOK(). + */ +function user_theme_suggestions_user(array $variables) { + $suggestions = array(); + $sanitized_view_mode = strtr($variables['elements']['#view_mode'], '.', '_'); + $suggestions[] = 'user__' . $sanitized_view_mode; + return $suggestions; +}