2

背景:クエリを格納する複雑な検索フォームがあり、そのハッシュはキャッシュに保存されます。/searchresults/e6c86fadc7e4b7a2d068932efc9cc358キャッシュが設定されたら、最後にある大きな長い文字列がクエリの md5 ハッシュであるような場所にリダイレクトします。ハッシュが何に役立つかを知るために、ビューの新しい引数を作成する必要があります。

このすべての手間の理由は、私の元の検索フォームが複雑で、多くの引数をパスに入れ、通常のビュー引数でフィルタリングを行うことを検討する方法があるためです。

さて、私の質問です。ビュー 2 のドキュメントを読んでいますが、このカスタム引数を達成する方法がわかりません。これは、私にはそうあるべきだと思われるほど難しいはずではないように私には思えません。veiws API の知識はさておき、パスから引数を唯一の引数として取得し、フィルター処理するノード ID のリストを返すコールバック関数だけが必要なようです。

誰かが私に解決策を指摘したり、サンプルコードを教えてもらえますか?

ご協力いただきありがとうございます!あなたたちは素晴らしいです。

PS。私のデザインが私が思いつくことができる最高のものであると確信しています。私の質問から離れずに、私たちがそれを助けることができるかどうか私のデザインロジックをクロスチェックしましょう。

4

1 に答える 1

1

あなたがそれを作りたいほど簡単ではありません。

ビューでは、引数はオブジェクト、fxユーザー、ノード、用語、カスタムオブジェクトを返すために使用されます。したがって、「クエリオブジェクト」を取得するために、カスタムコードを作成できます。それは最初のステップにすぎません。次に、クエリオブジェクトから情報を取得する必要があります。ノードとのカスタムリレーションシップボンドを作成するか、独自のフィルターを作成してSQLを必要とすることができます。これはすぐに混乱を招くタイムシンクになる可能性があります。

代わりに、を使用することをお勧めしますhook_views_query_alter。これにより、クエリを変更できます。すでにSQLを持っているので、ハッシュをチェックし、そこにある場合はクエリを変更するだけです。非常に簡単なことです。少し注意が必要なのは、ビューが使用するクエリオブジェクトを使用してクエリを作成する必要があることですが、理解するのはそれほど難しくありません。

于 2010-06-17T07:19:23.467 に答える