From 94be34d2be8c5838d9dcd5fcae118241adbe56a9 Mon Sep 17 00:00:00 2001 From: catch <catch@35733.no-reply.drupal.org> Date: Tue, 7 Mar 2023 15:52:04 +0000 Subject: [PATCH] Issue #3345789 by andy-blum: Improve documentation of hook_theme_suggestions_HOOK() (cherry picked from commit 18b08a8372e8f93064f958902b726d71c2f9302e) --- core/lib/Drupal/Core/Render/theme.api.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/core/lib/Drupal/Core/Render/theme.api.php b/core/lib/Drupal/Core/Render/theme.api.php index 4a0aa4d1b4db..8055217a9ea2 100644 --- a/core/lib/Drupal/Core/Render/theme.api.php +++ b/core/lib/Drupal/Core/Render/theme.api.php @@ -610,7 +610,26 @@ function hook_preprocess_HOOK(&$variables) { * must otherwise make sure that the hook implementation is available at * any given time. * - * @todo Add @code sample. + * Suggestions must begin with the value of HOOK, followed by two underscores to be discoverable. + * + * In the following example, we provide suggestions to + * node templates based bundle, id, and view mode. + * + * @code + * function node_theme_suggestions_node(array $variables) { + * $suggestions = []; + * $node = $variables['elements']['#node']; + * $sanitized_view_mode = strtr($variables['elements']['#view_mode'], '.', '_'); + * $suggestions[] = 'node__' . $sanitized_view_mode; + * $suggestions[] = 'node__' . $node->bundle(); + * $suggestions[] = 'node__' . $node->bundle() . '__' . $sanitized_view_mode; + * $suggestions[] = 'node__' . $node->id(); + * $suggestions[] = 'node__' . $node->id() . '__' . $sanitized_view_mode; + * + * return $suggestions; + * } + * + * @endcode * * @param array $variables * An array of variables passed to the theme hook. Note that this hook is -- GitLab