web-dev-qa-db-ja.com

drupal 8でテーマの上書きを表示

私はdrupal 8を初めて使用するので、ビューテンプレートをオーバーライドする必要があります。そのため、services.ymlでテーマデバッグを有効にして、twigテンプレート提案名。

これは私の表示テーマのデバッグです。

<!-- THEME DEBUG -->
<!-- THEME HOOK: 'views_view_unformatted__test_content_view' -->
<!-- FILE NAME SUGGESTIONS:
   x views-view-unformatted--test-content-view.html.twig
   x views-view-unformatted--test-content-view.html.twig
   * views-view-unformatted.html.twig
-->

次に、drupal8テーマとテーマファイル呼び出しのテンプレートでファイルを作成しました。 themename_views_view_unformatted__test_content_view()関数を使用してthemename.themeファイルをオーバーライドしましたが、関数が呼び出されません。

twigテンプレートに来る変数をオーバーライドする方法はありますか。ビューテンプレートをオーバーライドする提案を誰かに教えてもらえますか?.

前もって感謝します。

5
PraveenKumar

あなたの場合、 'views_view_unformatted__test_content_view'はrender配列のテーマフックです。 Drupal 8では、次の前処理関数を使用して、テンプレートに到達する前に変数を変更できます。

  • themename_preprocess_views_view_unformatted__test_content_view()
  • themename_preprocess_views_view_unformatted()

利用可能な前処理関数についての詳細情報があります ここ

4
lauriii

開始するのに最適な場所は、ビューのテーマの提案を確認することですが、現在コアにはありません。これは、Drupal 8コアの既知のバグです。現在バージョン8.6で作業中です。

ここで適切なテーマの提案を表示する機能が必要な場合は、2つのオプションがあります。

  1. Issue#2923634 のコメント#22(またはそれ以降)のパッチと Issue#275244 のパッチを試してください。 #2923634のコメントスレッドを読んで、ここで何が行われているのかを完全に理解してください。

  2. または、上記のオプション1のために延期された Issue#211874 のコメント#139からよく吟味されたパッチを使用します。

オプション2のパッチ( #211874 )を正常に使用しています。これは、標準のコアコントリビューターの推奨事項に反することに注意してください。しかし、その理由は、#2118743には、開発中にのみ有効化/使用される何かに対して、十分に吟味された単一の有効なパッチがあり、開発中の2つの個別のパッチのさまざまな組み合わせをテストする必要がないためです。より良いソリューション( #2923634 および #275244 )がコアで修正されると、#2118743は不要になり、不要になります。

このソリューションを@lauriiiのテンプレート前処理関数の説明と組み合わせると、必要な変数をオーバーライドできます。

それが機能せず、さらに深く掘り下げる必要がある場合は、Viewsランタイムフック(例:hook_views_pre_renderまたはhook_views_post_execute)。これらの関数をmodule_or_themename.views_execution.incファイルDrupal 8カスタムモジュールまたはテーマ。現在、ドキュメントはこれらの関数について非常に薄いDrupal 8ですが、ほとんどの場合Drupal 7つの例も役立ちます。

0
JamesWilson