テーマに頼らず コンテンツのフィールドとして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.昇順で並び替える 関連モジュール タイトル
フォーム 7.38 Webform Webformでタクソノミーを参照したい
コンテンツの管理 7.38 Block Views node ノードページの編集タブをコンテキストメニューにしたい
フォーム 7.38 Views Views一覧の絞り込み検索フォームで複数フィールドを対象にしたい
フォーム 7.38 Webform Webformモジュールをアップデートしたら「このフィールドを入力してください」
コンテンツの作成 7.38 Webform Webformでテーブル形式にしたい
コンテンツの作成 7.38 node 代理投稿を可能にしたい
サイトの構築 7.38 deployment 冗長構成におけるアップロードおよび時間指定公開について
ユーザ 7.38 user form 新規ユーザー登録時、パスワード再設定時のパスワード入力抜けを防ぎたい
css 7.38 Webform Webfomの送信内容確認ページで表示が崩れる
コンテンツの作成 7.38 CKEditor CKEditorの「ソース」に入力したタグが消える
コンテンツの作成 7.38 node form ノード編集フォームをテーブル表示形式にしたい
サイトの構築 7.38 Content Template ページテンプレートが反映されません。
サイトの環境設定 7.38 Views Bulk Operation VBO(Views Bulk Operation)で指定したアクションが表示されない
コンテンツの作成 7.38 Views CSV出力にHTMLが入ってしまう
コンテンツの作成 7.38 CKEditor 突然GoogleMap内の経路がずれてしまった
Google 7.38 robots.txt Google Search Console Teamから「CSS および JS ファイルに Googlebot がアクセスできません」
フォーム 7.34 Webform 動的なフォーム(webform)
サイトの構築 7.34 ECK Entityの使い方について
アップデート 7.34 Core 簡単にCoreのセキュリティアップデートがしたい
Messages 7.34 Disable messages 標準(コア)が表示する特定のメッセージ非表示にしたい

ページ