web-dev-qa-db-ja.com

Drupal 7同じタイプのノードのみを表示するコンテキストフィルターを表示する7

さまざまなコンテンツタイプのノードページのサイドバーブロックになるビューを作成しようとしています。ビューはかなり基本的なもので、リンクされたタイトルです。コンテキストフィルター(Drupal 6ではビューの引数)を使用できる)を使用できると考えたので、すべてが同じで、すべてに対して1つのビューを使用する多くのビューを設定する必要はありません。 。

私の目標は、同じタイプのサイドバーブロックビューのノードのみをノードページに表示することです。したがって、たとえば単一のブログノードページでは、サイドバービューには他のブログストーリーのみが表示されます。ただし、ニュースコンテンツタイプのノードページで同じビューを表示すると、サイドバーブロックなどの他のニュースストーリーのみが表示されます...

「ニュース」「サービス」「ブログ」など様々なコンテンツタイプがあります。

これが私がこれまでに試したことです

  1. リンクされたタイトルを表示する基本的なビューを設定します。
  2. Content: Typeを使用したコンテキストフィルターを追加しました
  3. "When the filter value is NOT available"
    • デフォルト値を提供>> URLからのコンテンツID
  4. "When the filter value IS available or a default is provided"
    • 「検証条件を指定」>>検証ツール>>コンテンツ>>必要なコンテンツタイプ(ブログ、ニュース、サービスなど)をチェックしました。

これを保存した後、どのノードページにもデータが表示されません。また、コンテキスト設定の他のさまざまなオプションを試してみましたが、役に立ちませんでした。私のgoogle-fooも失敗します。これは、このようなものについて見つけたすべてが分類法を扱っているためです。

3
Danny Englander

コンテキストフィルターを使用して(コーディングを使用せずに)できるとは思いません。タイプごとに(ブロック出力付きの)ビューを作成し、フィルター基準「コンテンツタイプ=ニュース」などを使用します。

ビューのクローンを作成し、タイプをオーバーライドしてブロック名を変更するだけなので、非常に簡単です。

1
uwe

コンテンツタイプごとにpathautoによってパスエイリアスを追加します。ブロック付きのビューを作成し、コンテンツまたはコンテンツのフィールドを表示してから、Contextual filter:Content:タイプを追加します。 WHEN THE FILTERT VALUE IS NOT AVAILABLEセクションを選択し、デフォルト値を指定してから、「Raw id from the URL」を深さ1で選択し、「use path alias」が選択されていることを確認します。ビューブロックは正常に機能しますこれを機能させるには、ユーザーのviews3を使用する必要があります。

1
Reza Shadman

PHPはセキュリティ上の理由から利用できないことが多いですが、 この答え のようなコードを提供できます。最終的には、使用する(または、使用不可)この機能をビューモジュールのコンテキストフィルターセクションに提供するモジュール。

0
Jon Kloske