コンテキストフィルターと関係を使用して関連記事を表示するにはどうすればよいですか?


8

だから、私はこれを一日中理解しようと努めてきました。基本的にプレビューアで機能していましたが、今はまったく機能していないようです。

使用例:コンテンツタイプ「Article」で公開された各ノードには、含まれているタグの分類フィールドが付属しています。私がやろうとしていることは、他の記事にリンクする一連のサムネイルを使って、記事の下に表示されるブロックを作成することです。これらの記事は、各記事で使用されているタグに基づいて関連付けられています。

したがって、問題は次のとおりです。

  1. コンテキストフィルターとビューを使用してこれを設定し、ビュー自体が記事で分類用語の参照として使用されるfield_tagsを自動的に表示し、各記事のタグに基づいて出力を自動的に表示するようにするには、どのような方法が適切ですか?

関係フィルターを介してコンテンツタイプ:記事に用語が含まれることを認識できるように、コンテキストフィルターを設定しようとしましたが、率直に言って、これを達成するために何をする必要があるかについて、ちょっと困惑しています。


これはおそらく最も簡単な方法です。私は同じことを達成しようとしていました。;)drupal.stackexchange.com/questions/69426/...
kyletaylored

回答:


1

同じカタログの製品を表示するために、Drupal 7の1つのプロジェクトに同じものを実装しました。

記事コンテンツのビューを作成し、タグのコンテキストフィルターを作成できます。そのタグの記事がすべて表示されます。

以下の手順に従ってください:

  • タグのコンテキストフィルターを追加します。[デフォルト値を提供]ラジオボタンをオンにしました。
  • タイプドロップダウンで[分類用語のURLからのID]を選択します。
  • 「ノードページからデフォルトフィルターをロードする」チェックボックスをチェックしました。
  • 「語彙による用語の制限」チェックボックスをオンにしました。
  • [語彙]セクションで、ビューにフィルターを追加する語彙(タグ)のチェックボックスをオンにしました。
  • [詳細]セクションで、[複数の値を許可する]チェックボックスをオンにしたので、複数のタグを使用して用語をフィルタリングできます。

以下の画像を参照してください。

また、ノードIDのコンテキストフィルターを追加し、以下の手順に従う必要があります。これにより、現在のノードページが関連ビューセクションに表示されなくなります。

  • コンテンツを追加:ビューのNidコンテキストフィルター。
  • [デフォルト値を提供する]ラジオボタンをオンにし、タイプドロップダウンで[URLからのコンテンツID]を選択します。
  • コンテキストフィルターの[詳細]セクションで、[除外]チェックボックスをオンにしました。

同じカテゴリのビューに関連製品を表示する


0

類似用語を使用してみましたか?

(編集)ビュー分類法の引数の問題は、分類法がブードゥー分類法モジュールコードではなくフィールドに含まれるようになったことです。このため、Drupal 6の分類APIの一部はDrupal 7では使用できません。

私はContextモジュールをContextsからのビュー引数とともに使用します。Drupal 7を移植するパッチを作成しまし。これにより、ビューのContexualフィルターの下に別のオプションが表示され、そのときにコンテキストまたは読み込まれたオブジェクトとエンティティに基づいて引数を取得できます。

これは特に関数を使用しています:

function taxonomy_node_get_terms($node, $key = 'tid') {
static $terms;
  if (!isset($terms[$node->vid][$key])) {
    $query = db_select('taxonomy_index', 'r');
    $t_alias = $query->join('taxonomy_term_data', 't', 'r.tid = t.tid');
    $v_alias = $query->join('taxonomy_vocabulary', 'v', 't.vid = v.vid');
    $query->fields( $t_alias );
    $query->condition("r.nid", $node->nid);
    $result = $query->execute();
    $terms[$node->vid][$key] = array();
    foreach ($result as $term) {
      $terms[$node->vid][$key][$term->$key] = $term;
      }
  }
return $terms[$node->vid][$key];
}

Drupalコアから削除されるべきではありませんでした。現在のノードオブジェクトに渡す場合に使用する分類用語を検索します。


いいえ、私はそれを見てみましょう。私の主な懸念は、モジュールに過度に依存することを望まないことです。これは、本番環境で時々少し不安定になる可能性があるためです。
John Riley

用語で類似していると、複製できるビューが作成されます。完了したら、無効にしてください。

それで、この関数を正確にどこにロードしますか?分類モジュールをどこかに変更するだけですか?
ジョンライリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.