Cara Memfilter tampilan dengan membandingkan 2 bidang. Jika bidang-a <bidang-b

18

Saya memiliki tipe konten produk yang memiliki 2 bidang harga.

Saya ingin membuat tampilan yang menunjukkan semua produk dengan harga-A lebih rendah dari harga-B.

Saya berharap saya bisa menambahkan filter dan pilih harga-A lalu pilih operasikan kurang dari dan tetapkan nilainya sebagai harga-B, namun Anda tidak dapat melakukannya.

Saya telah melihat ke dalam menggunakan hook pandangan, terutama hook_views_query_alter tetapi belum beruntung.

Saya juga sudah mencoba menggunakan modul Views PHP dan tidak dapat membuatnya berfungsi.

Adakah yang tahu cara terbaik untuk mencapai ini?

Fadzy
sumber

Jawaban:

10

Apa yang Anda cari adalah kriteria filter Global: Fields comparison:)

digitgopher
sumber
3
Ini harus menjadi jawaban yang diterima.
joe_flash
4

Selamat datang di Drupal Answers Stack Exchange! Tidak ada jalan lurus ke depan untuk mencapai ini dalam pandangan Drupal seperti sekarang, dan seperti yang saya tahu.

Anda dapat melakukan ini menggunakan modul Views PHP . Aktifkan modul ini dan tambahkan filter PHP filter yang dapat Anda pilih dari filter tampilan Kategori Global setelah Anda menginstal modul di atas.

Tambahkan beberapa kode php seperti di bawah ini di bagian kode PHP filter.

$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;
}

Ubah field_price_a dengan nama bidang Price A Anda dan field_price_b dengan nama bidang Price B Anda.

Saya menguji dan itu berhasil untuk saya! Semoga Anda bisa memecahkannya juga :-)

Anil Sagar
sumber
Terima kasih untuk sarannya. Saya masih tidak dapat membuatnya bekerja dengan sedikit kode ini dan telah menggunakan bidang yang muncul ketika melakukan dsm ($ data); Saya pikir saya mungkin menambahkan kotak centang juga dan memfilter jika kotak centang dicentang. Terima kasih atas bantuan Anda.
Fadzy
Sementara itu, dimungkinkan dengan tampilan, tanpa pengodean kustom atau modul apa pun yang diperlukan.
Елин Й.
-1

http://drupal.org/project/views_dependent_filters sangat berguna ...

Tombol tambah "Filter Kriteria" memiliki submenu baru. Perencanaan sendiri setelah Anda mencobanya ...

Sunting: maaf, tetapi bukan untuk> atau <, tetapi untuk filtergroup yang dapat dipisahkan oleh ATAU

sinini
sumber
-2

Jika harga adalah bidang dalam jenis konten Anda, dalam tampilan Drupal 7 Anda dapat secara otomatis, dan dengan mudah memilih rekan bidang. Saya kira ini seharusnya berhasil.

Saurav
sumber