web-dev-qa-db-ja.com

ビュー生成ブロック-一部のページでフィルターをオーバーライドする方法は?

彼の新しいサイトのすべてのページで、クライアントは4つの注目リンクを含むブロックを望んでいます。これはサイト全体でかなり一貫していますが、一部のページでは、自分で選択した4つのリンクを上書きして表示したいと考えています。

ブロックに Views および/または Nodequeue を使用することを考えていますが、一部のノードで簡単に変更できるデフォルトを提供する方法がわかりませんか?より良い方法はありますか?

1
pushka

このためのカスタムモジュールを作成しますが、非常に簡単に実行できるようです。

  1. 4つのデフォルトリンクを入力できる管理インターフェースを作成します。
  2. 特別なリンクを入力できるノードにフィールドを作成します。
  3. ブロックビューで、ノードのロードを試みます。可能であれば、カスタムリンクを確認し、必要に応じてデフォルトのリンクを使用します。

上記のソリューションは、リンクのみが必要な場合に適しています。

代わりに、画像や分類用語など、より多くのデータを取得できる可能性のあるノード参照が必要な場合は、ビューを使用するとより洗練された表示を簡単にセットアップできるため、代わりにnodequeueが便利です。ただし、オーバーライドするのは少し難しいですが、前処理関数またはhook_views_query_alterを介して実行できます。

1
googletorp

コンテキストモジュールを確認してください: http://drupal.org/project/context

または、ブロックページからブロックを編集するだけで、表示するパスまたは表示しないパスを指定できる可視性セクションがあります。

メニューを作成すると、自動的に作成され、関連するブロックが作成されます。したがって、基本的にメニューを作成し、パスまたは使用コンテキストに従ってブロックの可視性を設定します。

0
xamox