テーマに頼らず コンテンツのフィールドとしてViewsを埋め込み表示する方法

カテゴリ コンテンツの作成 コアバージョン 8.9.x 関連モジュール Display sweet, Views, Twig Tweak, Views field formatter

ユーザー別にテーマを切り替えたり、コンテンツ共通のパーツなど、レンダリング前に 汎用パーツを コンテンツに埋め込み表示したい場合がある。

ノンプログラミングで対応する方法が存在した。

前提:

  • Display sweetモジュールをインストール
  • Twig Tweakモジュールをインストール
  • Views field formatterモジュールをインストール

例)ノードにAuthorアバターを埋め込む手順

1. Viewsで埋め込み用 Userアバターを[エンベッドを追加]する。
​・Views id=avatar
・システム内部名称=embed_avatar
・コンテクスチュアルフィルター=User:ユーザーID
・フォーマット/フィールド/フィルター: 必要な内容を設定

2. Display sweet › フィールド › Add a twig field で 以下の内容で Twigフィールドを追加する。
・ラベル node author avatar
・エンティティ=Node
・Template=

{{ drupal_view('avatar', 'embed_avatar', node.getOwnerId()) }}

3. 埋め込みたいコンテンツタイプの[表示管理]
・[Layout for コンテンツタイプ名 in 表示名]で[なし]以外を選択すると 2. で 追加したフィールドが 無効グループに追加される
・当該フィールドを表示対象グループ内に移動する
・[保存]

細かい表示要件に対応するには もちろん テーマ(テンプレート)や CSSでの定義が必要になるが、共通のCSSだけで済ませたい場合、テンプレート(Twig)に慣れていない場合は 結構使える。

OTHER FAQ

Drupal開発・運用の疑問/質問の答えはここに

無料ユーザー登録すると質問できます。

カテゴリ Core Ver. 関連モジュール降順で並び替える タイトル
テーマ 8.7.x Bartikのtwigについて
テーマ 8.9.x スマホに向いたテーマについて
ブロック 7.23 伸縮するfieldsetブロックを追加したい
jQuery Revolution 7.50 jQuery Revolutionのリンクがスマホで機能しない
PCRE 7.50 preg_match()がおかしい
コンテンツの管理 8.9.x 写真の変更を行いたい
コンテンツの作成 8.4x コンテンツ作成時のフォームレイアウトの変更
Apache2.4 7.50 Apache2.4のアクセス制限
サイトの環境設定 8.9.x 編集
テーマ 7.34 スマホ、PCおよびアプリを同時に運用可能なおすすめのテーマはありますでしょうか?
サイトの環境設定 7.15 トップ(ホーム)ページを変更するには?
CentOS 7.50 消せないファイルを消すには
言語 6.22 URLエイリアスを使った場合に、翻訳したページで同じURLエイリアスが使えないという不具合
コンテンツの管理 8.4x Action カスタムアクションを作成する方法
コンテンツの管理 7.50 Administration menu 標準のユーザー管理ページ
コンテンツの作成 7.34 ajax 標準のajaxフォーム(複数値:値の数=無制限)の制御l方法
サイト情報 8.9.x api Drupal::request() メモ
フォーム 8.9.x api GET/POSTされた情報を得る方法
SESSION 8.9.x api $_SESION操作のAPI
コンテンツの作成 8.4x archiver zipファイル圧縮・解凍する方法

ページ