テーマに頼らず コンテンツのフィールドとして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.22 Views Devel Viewsの設定ページが変に?
PHP 7.22 PHP ノードに付いたコメントを好きな場所に表示する
サイトの構築 7.22 Views フィールドセットの伸縮をノンプログラミングでやりたい
ユーザ 7.22 Realname ユーザーIDではなくニックネーム等を表示したい
コンテンツの作成 7.22 node Views ノードに付いたコメントに関する情報を得る
サイトの構築 7.19 Plesk Pleskでdrupal7(プライベートファイルシステム)を使う場合の注意点
アップデート 7.16 Core 7.15→7.16アップデート
コンテンツの管理 7.16 PHP 好きなところにノードを埋め込みたい
フォーム 7.16 Webform, Mail System, Mime Mail, Jp Mail Helper 送信メールのサブジェクトが長いと文字化けする
言語 7.15 Entity Translation デフォルトの言語 - Entity Translation
タクソノミー 7.15 Taxonomy manager タクソノミーを効率よく管理したい
見栄え 7.15 js Injector 簡単にJavascriptを追加する方法は?
テーマ 7.15 CSS Injector 簡単にCSSを追加したい
ユーザの管理 7.15 Devel 簡単に指定ユーザにログインしなおす方法
アップデート 7.15 Webform Backup_and_Migrate drupal7.12 -> drupal7.14アップデートメモ
コンテンツの管理 7.15 Content Access 簡単に閲覧制限を行うには?
権限 7.15 Path_Access Content_Access 特定のページ(パス)をアクセス制限したい
コンテンツの作成 7.15 Automatic_Nodetitles Automatic_Entity_Label ノード投稿フォームにタイトル入力フォームを表示しない方法
フォーム 7.15 Webform Template Webformを複写したい
言語 7.15 Entity Translation 各フィールドのラベルの多言語切り替え漏れ(フィールド・ラベル)

ページ