【问题标题】:Drupal 8: Inserting a block/view into the menu twig templateDrupal 8:将块/视图插入菜单树枝模板
【发布时间】:2016-08-16 15:28:13
【问题描述】:

是否可以在我的 Mega Menu 树枝模板中进行块/视图渲染?

我创建了一个区域,创建了一个视图/块并将该块添加到该区域。但问题是让视图中的内容显示在我的菜单中。

我开始考虑我可以简单地从我的树枝菜单循环中指定一个区域。

【问题讨论】:

    标签: drupal twig drupal-8


    【解决方案1】:

    如果你想在你的模板中添加一些东西,你需要在你的模块/主题中使用预处理功能。例如,您可以使用views_embed_view 函数添加视图变量:

    /**
     * Implements hook_preprocess_HOOK().
     */
    function MYTHEME_preprocess_menu(&$variables) {
      switch ($variables['menu_name']) {
        case 'mega-menu':
          $variables['my_view'] = views_embed_view('my_view');
          break;
      }
    }
    

    此后,$my_view 变量将在您的menu--mega-menu.html.twig 模板中定义。

    添加块有点困难。请看this的答案。

    【讨论】:

    • 我有:$variables['megamenu-marketsviews'] = views_embed_view('mega_menu_markets');但在前端它只是显示数字 0。在我的视图预览中,它按预期显示 1 个结果(带有文本等)。
    • 尝试在变量名称中使用下划线而不是破折号:$variables['megamenu‌_marketsviews']。还要确保您的视图没有参数(或您传递所有必需的参数)并且您使用正确的显示 ID。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    相关资源
    最近更新 更多