【发布时间】:2016-09-10 16:03:38
【问题描述】:
我是 Drupal 的新手,我想传递域 URL 以在 menu.html.twig 模板中使用。我怎样才能做到这一点。实际上,我有一个包含 5 个域的菜单,它们都指向同一个 Drupal 实例。根据域名,我想让菜单处于活动状态。
谢谢
【问题讨论】:
我是 Drupal 的新手,我想传递域 URL 以在 menu.html.twig 模板中使用。我怎样才能做到这一点。实际上,我有一个包含 5 个域的菜单,它们都指向同一个 Drupal 实例。根据域名,我想让菜单处于活动状态。
谢谢
【问题讨论】:
由于 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 这里代表你的模块的名称。不要忘记启用您的模块并清除缓存!
【讨论】:
你可以在 hook_preprocess_hook(&$vars) 中完成。
function mymodule_preprocess_menu(&$vars) {
$domain = \Drupal::service('domain.negotiator')->getActiveDomain();
$vars['domain'] = $domain->getUrl();
}
现在你可以在你的树枝中使用 {{ domain }} 变量了。
【讨论】: