【问题标题】:Searching Menu template suggestion by regions in Drupal 8在 Drupal 8 中按区域搜索菜单模板建议
【发布时间】: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


【解决方案1】:

我已经尝试实现相同的目标,但它不需要是建议中的区域名称。它可能是块 ID,当您将块放置在标题区域时,您可以更改该块 ID。

检查这个答案:https://drupal.stackexchange.com/a/219770/32059

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 2018-11-02
    相关资源
    最近更新 更多