2016-09-23 8 views
0

カスタム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の配列に追加されます。ただし、ページがレンダリングされると、新しいテンプレートは無視されます。私は結果を出すことなく、キャッシュをフラッシュしようとしました。

私はどのように進むのかは分かりません。私が見つけたすべてのドキュメントは、カスタムテーマではなくカスタムモジュールからのテーマ提案を追加することを指しています。

私が間違っていることを知っていますか?助けてくれてありがとう!

+0

Twig Debugを有効にしましたか? $ suggestions [] = $ hookを試してみてください。 '__' 'builder_template'; Twig Engineには時々問題の提案がありました。 –

答えて

1

貼り付けたコードに誤字があるかもしれませんが、テンプレートを上書きするフォルダはtemplatesで、書いた通りではありません。templateディレクトリの名前を変更した後にキャッシュをフラッシュすることを忘れないでください;)

関連する問題