web-dev-qa-db-ja.com

ブロックレイアウトから実行するときに現在のNode IDを関連付ける方法は?

コンテンツタイプに関連付けられたコンテンツのブロックを作成するDrupal 8ビューを作成しました。ブロックには、「コンテンツ:Node ID」のコンテキストフィルターがあります。さまざまなノードのNode IDをビュープレビューに配置して、Node IDごとに異なるコンテンツを受け取ることができます。ビューブロックはビュープレビューでうまく機能しているようです。

このビューブロックをブロックレイアウトの領域に配置します。現在のノードのNode IDを取得するためのブロックが必要です。これにより、ビューのプレビューと同様に、異なるノードごとに一意のコンテンツが表示されます。ブロックレイアウトから実行しているときに現在のNode IDを関連付ける方法を理解できませんでした。 Drupalに同梱されている「ページタイトル」や「メインページコンテンツ」など、一部のブロックにはこの機能があります。8.ビューブロックにこの機能を与えることはできますか?

上記で書いたものの2つの代替案を考えました。

  1. 必要なブロックを作成するモジュールを作成します。現在のNode IDを取得して、Viewsブロックを表示します。

  2. viewsブロックをコンテンツタイプに関連付けられたtwigファイルに統合します。ノードが表示されると、twigはNode IDでビューを呼び出し、必要なコンテンツ。

助言がありますか?

5
Greg Sims

この機能は、ビューのコンテキストフィルターの形ですでに存在しています(D8に限定されません)。これをする:

  1. "Content:nid"のビューブロックにコンテキストフィルターを追加します
  2. 「フィルターが存在しない場合」で「デフォルト値を提供する」を選択します。
  3. 「URLのコンテンツID」を選択します。

そして、このブロックは自動的にURLからnidを取得します。

7
AjitS