【问题标题】:Drupal 8 how to pass a value to menu twig templateDrupal 8如何将值传递给菜单树枝模板
【发布时间】:2016-09-10 16:03:38
【问题描述】:

我是 Drupal 的新手,我想传递域 URL 以在 menu.html.twig 模板中使用。我怎样才能做到这一点。实际上,我有一个包含 5 个域的菜单,它们都指向同一个 Drupal 实例。根据域名,我想让菜单处于活动状态。

谢谢

【问题讨论】:

    标签: drupal twig drupal-8


    【解决方案1】:

    由于 OP 对 Drupal 不太熟悉,因此扩展了 Artreaktors 的答案。

    使用您想要的任何名称创建一个模块。如果您需要这方面的帮助,请查看Drupal Console,它将为您提供很多帮助。

    在您的模块文件夹中,您会找到一个 module_name.module 文件。

    在这里你将添加Artreaktor给出的代码:

    function mymodule_preprocess_menu(&$vars) {
      $domain = \Drupal::service('domain.negotiator')->getActiveDomain();
      $vars['domain'] = $domain->getUrl();
    }
    

    mymodule 这里代表你的模块的名称。不要忘记启用您的模块并清除缓存!

    【讨论】:

      【解决方案2】:

      你可以在 hook_preprocess_hook(&$vars) 中完成。

      function mymodule_preprocess_menu(&$vars) {
        $domain = \Drupal::service('domain.negotiator')->getActiveDomain();
        $vars['domain'] = $domain->getUrl();
      }
      

      现在你可以在你的树枝中使用 {{ domain }} 变量了。

      【讨论】:

      • 您好,感谢您的支持。我是 Drupal 代码的新手。我可以在我的 theme.inc 文件中添加这个函数吗....?
      • 在您的自定义主题 (mytheme.theme) 或模块 (mymodule.module) 文件中使用此代码。您应该将“mymodule”替换为您的主题或模块的真实名称。
      猜你喜欢
      • 1970-01-01
      • 2016-05-11
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多