Drupal.stackexchange.comからコピーして、ここでより多くの回答を得たいと考えています。
現在のノードと同様のノードのリストを表示するというかなり一般的な問題に直面しています。類似ノードは、現在のノードが持っている少なくとも1つの分類用語を持つノードとして定義されます。モジュールとして利用できるソリューションはほとんどありませんが、私が見つけたモジュール(特に用語による類似)はDrupal 7。
また、ビューとコンテキストフィルターに基づいたいくつかのソリューションを見つけました(例 http://scito.ch/content/show-related-nodes-block-based-taxonomy-terms-views-3- and-drupal-7 )または関係。追加のモジュールをインストールする手間が省けるため、私はこの方法がとても気に入っています。ビューは積極的に開発およびサポートされているので、カスタムソリューションではなくそれらを使用したいと思います。私が回避できない問題は、「類似ノード」をそれらが共有する用語の数でソートする方法です。たとえば、「iPhone 4S」Nodeで「ガジェット」、「アップル」、「電話」という用語を使用している場合、次の順序で同様のノードが必要です。
このビューのノードを、共有する用語の数でソートするにはどうすればよいですか?
この質問はビューの構築に関するものです。モジュールやカスタムのphpベースのソリューションを提案しないでください。ありがとうございました。
**ビューUIプレビューでこれをテストする方法については、下記の@ garret-albrightによるコメントを参照してください。 **
これは、この質問に関連する代替ソリューションです。ただし、すべてのケースに当てはまるわけではありませんが、使用できる場合は単純です(私の意見では集計よりも安全です)。
panels を使用します。エンティティ(ノードなど)を表示するパネルを作成したら、複数のビューを追加して、コンテンツの横に表示できます。これらのビューの1つが関連コンテンツになります。
このパネルが唯一の制限です。 たぶんミニパネルを使用して、それをブロックとして表すことは可能です。私はまだ試していません。
通常どおりにビューを作成しますが、notのようにして、ブロックまたはページとして作成します。両方のチェックを外します。
ビューの構成ページで、エンティティにrelation to taxonomy termを作成します。
フィルターするコンテキストフィルターを作成します:分類用語:用語ID。
別のコンテキストフィルター:エンティティIDを作成するか、ノードの場合はコンテンツ:Nidです。
Addをクリックして、タイプコンテンツペインの新しい表示を作成します。
表示設定エリア(名前:ペイン設定)で引数入力を開きます。次の2つのオプションがあります。
おめでとうございます!ビューの作成が完了しました。パネルの時間です(このQ/Aの範囲を超えているため、パネルの作成についてはあまり説明しません)。
パネルを作成します(またはnode /%nodeデフォルトパネルを有効にして、バリアントを追加します)。
contextタブで、エンティティにrelation to taxonomy termを作成します。
いずれかのペインで[コンテンツの追加]をクリックします。
ビューのカテゴリを変更しなかった場合は、viewsペインにあります追加します。エンティティIDと用語IDの両方が要求され、パネルコンテキストで使用できるようになり、設定します。
パネルが表示されると、このページのコンテンツを除いて、同じ用語のコンテンツがすべて表示されます。
この方法を試したところ、問題なく動作しましたが、この記事の執筆時点では、ctoolsにバグがありました。それのためのパッチがあります: https://www.drupal.org/node/2195211