【发布时间】:2016-07-12 13:20:11
【问题描述】:
我想写一个主题建议,其中添加模板建议包含区域名称。 例如,在我的“标题区域”中,我想要这样的模板:menu--header.html.twig,或者在我的“自定义区域”中 - menu--custom_region.html.twig。
如果我在同一个区域有两个菜单,我想用一个模板进行模板化。
我在我的 THEMENAME.theme 文件中使用函数 THEMENAME_theme_suggestions_menu_alter(array &$suggestions, array $variables){} 进行了尝试,但我不知道如何查询该区域,即。在block alter中,我知道区域,所以我想如果我可以调用包含菜单的block,我也可以知道区域。
我想在我的 .theme 文件中执行此操作。
有解决办法吗?
【问题讨论】:
-
我认为这是不可能的。在 THEMENAME_theme_suggestions_menu_alter(array &$suggestions, array $variables) 钩子中, $variables 不包含菜单的位置。所以我们不知道哪个块包含它或菜单出现在哪个区域。
-
菜单可以多次渲染。例如,您可以在页脚、块布局页面(结构>>块布局)上放置一个菜单块,然后您可以将相同的菜单块放置到页眉中。所以同一个菜单出现在两个不同的区域,但是在theme_suggestions hook中,我们不知道实际的菜单在哪里。
-
感谢您的回答。我试图找到另一种方法来解决这个问题。
标签: drupal drupal-theming drupal-8