Drupal 8 如何将值传递给菜单树枝模板
Drupal 8 how to pass a value to menu twig template
我是 Drupal 新手,我想传递域 URL 以在 menu.html.twig
模板中使用。我怎样才能做到这一点。实际上我有一个包含 5 个域的菜单,它们都指向同一个 Drupal 实例。基于域名,我想让菜单处于活动状态。
谢谢
您可以在 hook_preprocess_hook(&$vars).
中完成
function mymodule_preprocess_menu(&$vars) {
$domain = \Drupal::service('domain.negotiator')->getActiveDomain();
$vars['domain'] = $domain->getUrl();
}
现在您可以在 twig 中使用 {{ domain }} 变量。
由于 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代表你的模块名称。不要忘记启用您的模块并清除缓存!
我是 Drupal 新手,我想传递域 URL 以在 menu.html.twig
模板中使用。我怎样才能做到这一点。实际上我有一个包含 5 个域的菜单,它们都指向同一个 Drupal 实例。基于域名,我想让菜单处于活动状态。
谢谢
您可以在 hook_preprocess_hook(&$vars).
中完成function mymodule_preprocess_menu(&$vars) {
$domain = \Drupal::service('domain.negotiator')->getActiveDomain();
$vars['domain'] = $domain->getUrl();
}
现在您可以在 twig 中使用 {{ domain }} 变量。
由于 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代表你的模块名称。不要忘记启用您的模块并清除缓存!