web-dev-qa-db-ja.com

親コンテンツタイプに基づく段落テンプレートの提案

テンプレートコードはコンテンツタイプに応じて異なりますが、フィールドとして同じ段落を使用する2つのコンテンツタイプがあります。コンテンツタイプに応じて、段落テンプレートに異なるテンプレート名を付けるにはどうすればよいですか。

現在の命名規則:paragraph--paragraph-type.html.twig

望ましい命名規則:paragraph--parent-content-type--paragraph-type.html.twig

別の解決策は、URLを取得してテンプレートで変数として渡し、渡されたURLに従ってテンプレートコードを使用することです。

2
Aditya

テーマ名の提案を追加します。

mytheme.theme:

/**
 * Implements hook_theme_suggestions_HOOK_alter().
 */
function mytheme_theme_suggestions_paragraph_alter(&$suggestions, $variables) {
  $paragraph = $variables['elements']['#paragraph'];
  $parent = $paragraph->getParentEntity();
  if ($parent) {
    $suggestions[] = 'paragraph__' . $parent->bundle() . '__' .  $paragraph->bundle();
  }
}
4
4k4

ノードタイプごとに異なる表示モードを使用します。構造>段落タイプで、ノードタイプの必要に応じて、段落にさまざまなビューモードを追加します。構造>コンテンツタイプで、ノードの段落フィールドの表示モードを「レンダリングされたエンティティ」に変更し、歯車を使用して、以前に作成した対応するビューモードを選択します。次に、paragraph--paragraph-type--viewmode-name.html.twigのようなテンプレートファイルを作成します。

1
Hudri