我希望我的自定义Drupal 8模块为与特定网址匹配的网页强制使用不同的模板。这是我的模块结构:
/sass_edit
/css
/js
/template
builder_template.html.twig // this is the template file
sass_edit.module
...
sass_edit.*.yml // various yml files
这些是builder_template.html.twig
:
<h1>test</h1>
以下是我.module
文件中的相关代码行:
function sass_edit_theme_suggestions_alter(array &$suggestions, array $variables, $hook) {
$current_path = \Drupal::service('path.current')->getPath();
if(\Drupal::currentUser()->isAuthenticated() && strpos($current_path, "/builder/") >= 0) {
$suggestions[] = 'builder_template';
}
// kint($suggestions);
// die();
}
当我访问其网址包含/builder/
的网页时,代码会运行并将字符串builder_template
添加到$suggestions
数组中。但是,在呈现页面时,将忽略新模板。我试过刷新缓存,没有结果。
我不知道该怎么办。我发现的所有文档都是指从自定义主题添加主题建议,而不是自定义模块。
知道我做错了什么吗?非常感谢你的帮助!
答案 0 :(得分:1)
也许您粘贴的代码中有拼写错误,但是您编写的模板覆盖的文件夹应该是templates
而不是template
。不要忘记在更改目录名后刷新缓存;)