0

わかりました、そのタイトルについては申し訳ありませんが、説明するのは難しいです。私の問題は次のとおりです。私はコンテンツ タイプ「製品カテゴリ」(いくつかの理由から分類法を使用しないでください) と「製品」を持っています。製品は、Node Referenceを使用してカテゴリに参照されます。

カテゴリ ページに、コンテキスト フィルター => 「URL からのノード ID」を使用してすべての所属製品を表示するビューもあります。私の問題は、製品をクリックすると、関係を維持する必要があることです。もちろん、現在の NID は私の製品のものであるため、コンテキスト フィルターは製品カテゴリの NID を認識しません。

動作: /category/xyz
動作しない: /category/xyz/myproduct ("myproduct" ではなく "xyz" の nid が必要なため)

親カテゴリのNIDを取得するようにコンテキストフィルタに指示する方法を知っている人はいますか?

4

2 に答える 2

0

より良い解決策がないため…製品ページに別のビュー表示を追加し、少し変更しました。

  • リレーションシップを追加し、カテゴリのノード参照フィールドを選択しました
  • コンテキスト フィルターをカスタム PHP に変更し、次のコードを提供しました。

    $n = node_load(arg(1));
    return $n->field_product_product_category['und'][0]['nid'];
    

これが正しい方法だとは思わないため、この回答を承認済みとしてマークしません。とにかくロードされるノードをロードするので、不要なデータベース呼び出しと、適切にノードオブジェクトを取得することに関連するすべてのものを生成していると思います。

いつか誰かがこれに対するより良い答えを持っているかもしれません。

于 2013-03-06T10:52:01.110 に答える
0

完全に理解しているかどうかはわかりませんが、URL からのノード ID などのコンテキスト フィルターを使用する場合、使用する引数を選択できます。

この相対 URL /category/xyz/myproduct の場合、引数 1 は「カテゴリ」を参照し、引数 2 は「xyz」を参照します。

おそらく、/category/* と /category/xyz/* のビューを設定してから、URL のどの部分をコンテキスト フィルターで使用するかを別の方法で設定します。

それは役に立ちますか?

注: arg 設定は、コンテキスト フィルター内の「デフォルト引数を提供する」からのドロップダウン設定である必要があります。

于 2013-02-27T09:53:59.363 に答える