2

こんにちは :) drupal 指向のサイトに同じ質問を投稿しましたが、まったく返信がありませんでした。私は自分自身に不平を言い、サイトがもっとStackOverflowに似ていることを望んでいたので、ここで質問してみませんか:)

分類用語に属するノードを表示するビューをいじっています。ボキャブラリには、すべての用語のサブキューを持つ分類ノードキューもあります。

これまでのところ、ビューには 1 つの引数 (分類用語 ID) があり、投稿日で並べ替えられています。しかし、特定の用語のすべてのノードを表示し、すべての nodequeue ノードを上に表示し、すべての非 nodequeue ノード (ただし、この特定の分類用語の下にあります) を下に、日付順に並べ替えて表示したい場合はどうすればよいでしょうか?

明確にするために、これが私の語彙であるとしましょう。これを「生きているもの」と呼びます

Plant
--Fruit
--Vegetable
Animal
--Fish
--Dinosaurs

次のノードは恐竜の下にあります。

Tyrannosaurus Rex (added 2009-01-01)
Megalosaurus (added 2009-01-02)
Velociraptor (added 2009-01-03)
Brachiosaurus (added 2009-01-04)

ティラノサウルスとヴェロキラプトルは非常に素晴らしい恐竜であるため、ノードキューの生物、サブキューの恐竜にも追加されます。

サブキュー:

  1. ヴェロキラプトル
  2. ティラノサウルス・レックス

最終的なビューでは、次の順序で表示されます。

Velociraptor (it's first in the NQ)
Tyrannosaurus Rex (2nd in NQ)
Brachiosaurus (of the remaining dinosaurs, this is the newest)
Megalosaurus (oldest non-queue dinosaur)

ノードキューへの関係を作成しましたが、サブキューを選択できず、「生きている」ノードキューにしか制限できませんでした。ビューの最初の引数はターム ID なので、2 番目の引数として "Nodequeue: subqueue reference" を追加すると期待どおりの動作になると思いましたが、これは nodequeue にリストされている恐竜しか表示しません。

この問題に関するヘルプや提案をいただければ幸いです。ありがとう!

4

4 に答える 4

3

私はノードキューのサブキューを実際に試したことがないので、これについて完全には確信が持てません。しかし、ノードキューに関する私の経験から、ビューを使用する場合、ビューがサポートする基本的なものに制限され、探しているタイプのカスタマイズを実際に行うことができないようです。あなたの最善の策は、このように並べ替えることができる独自のビュー並べ替えハンドラーを作成することだと思います。機能させるにはビューとノードキューの両方を理解する必要があるため、このようなハンドラーを作成するのはおそらく非常に難しいでしょう。以前にビューでこの種のことを行ったことがない限り、その道を冒険する前に、それが価値があるかどうかを本当に考えるべきです。

于 2009-08-10T10:54:38.427 に答える
2

その他のハック:
達成しようとしている動作の回避策は、nodequeue をまったく使用しないことかもしれません。ノードキューを使用する動機や日付の重要性についてはよくわかりませんが、以前に同様の問題に直面したことがあり、次の方法で対処できました。

  1. スティッキー
  2. 修正日

超クールな恐竜を貼り付けて、要素の公開日を変更して注文に合わせれば、探しているものを 1 つのビューで作成できます。それはちょっとばかげており、公開日(常に状況に依存するもの)をあまり気にしないこと、またはノードキューを使用するより差し迫った理由がないことに基づいています。そうは言っても、ノードキューや日付が必要ない場合は、実行可能なソリューションです。

Jeremy による 2 ビュー ソリューションも実行できるはずです。これは、特定のシナリオを処理する別の一般的な方法だと思います。

于 2009-08-13T22:01:22.683 に答える
1

ハッキーソリューションの警告!

ノードキューアイテムを使用して、ページにプライマリビューを表示します。

非ノードキューアイテムのブロックとして公開される別のビューを作成します。このブロックをメインコンテンツ領域に配置し、最初のビューと同じURLにのみ表示されるように制限します。

url変数をいじる必要があるかもしれませんが、うまくいくと思います。

于 2009-08-10T11:06:27.123 に答える
0

各ノードキューの背後にあるビューを連結してみませんか?(各ノードキューはビューを生成します)views_embed_view('first nodequeue')を呼び出すphpコードを含む2番目のノードキューにヘッダー(ビュー編集ページの「基本設定」を参照)を追加できます(ヘッダーの入力形式を変更する必要があります) 'php'へ)。むしろ、views_embed_view()を呼び出して、各ノードキューを含むカスタムビューを作成します。これにより、あるノードキューが別のノードキューの上に効果的に配置され、同じフォーマット/コンテンツタイプの場合は、フィールドをいじくり回す必要もありません。行スタイル==ノードを使用できます。あなたの議論に関しては、3番目のパラメーターとしてviews_embed_viewに渡すことができます(ドキュメントにはAFAICRとは書かれていませんが、フォーラム(http://drupal.org/node/99721 )で投稿を見つけました)示された引数は、埋め込まれているビューに「$ current_view-> args」として送信できます)。

HTH

于 2009-08-14T19:49:54.680 に答える