カスタムDrupal 8モジュールで、特定のURLに一致するページに対して別のテンプレートを強制的に使用したいとします。ここに私のモジュール構造である:私の.module
ファイル内のコードのDrupal 8のモジュールからノードテンプレートを変更するにはどうすればよいですか?
<h1>test</h1>
されている関連する行:
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();
}
私が訪問
/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
の内容は、ページにURLが/builder/
の場合、コードが実行され、builder_template
という文字列が$suggestions
の配列に追加されます。ただし、ページがレンダリングされると、新しいテンプレートは無視されます。私は結果を出すことなく、キャッシュをフラッシュしようとしました。
私はどのように進むのかは分かりません。私が見つけたすべてのドキュメントは、カスタムテーマではなくカスタムモジュールからのテーマ提案を追加することを指しています。
私が間違っていることを知っていますか?助けてくれてありがとう!
Twig Debugを有効にしましたか? $ suggestions [] = $ hookを試してみてください。 '__' 'builder_template'; Twig Engineには時々問題の提案がありました。 –