2つの価格フィールドを持つ製品コンテンツタイプがあります。
Price-Aがprice-Bより小さいすべての製品を表示するビューを作成したいと思います。
フィルターを追加して、price-Aを選択してから、[operate less than]を選択して、値をprice-Bに設定することを望んでいましたが、それはできません。
ビューフック、主にhook_views_query_alterの使用について調査しましたが、うまくいきませんでした。
私もビューPHPモジュールを使用してみましたが、機能させることができませんでした。
誰かがこれを達成するための最良の方法を知っていますか?
あなたが探しているのはフィルター基準Global: Fields comparison
:)
Drupal Answers Stack Exchangeへようこそ!Drupal現在のところ、そして私が知っているように、これを実現する簡単な方法はありません。
Views PHP モジュールを使用してこれを行うことができます。このモジュールを有効にして、フィルターを追加しますPHPフィルターは、上記のモジュールをインストールすると、ビューフィルターグローバルカテゴリから選択できます。
フィルターのPHPコードセクションに以下のようなPHPコードを追加します。
$node = node_load($data->nid);
$field_a = field_get_items('node', $node, 'field_price_a');
$price_a = field_view_value('node', $node, 'field_price_a', $field_a[0]);
$field_b = field_get_items('node', $node, 'field_price_b');
$price_b = field_view_value('node', $node, 'field_price_b', $field_b[0]);
if ($price_a >= $price_b) {
return TRUE;
}
Field_price_aを価格Aのフィールド名に変更し、field_price_bを価格Bのフィールド名に変更します。
私はテストし、それは私のために働いた!あなたもそれをクラックできることを願っています:-)
この機能は、バージョン7.x-3.8以降のビューに含まれています。詳細は https://www.drupal.org/node/699252#comment-7513087 を参照してください。