Bagaimana cara saya memeriksa apakah kotak centang on / off tunggal dicentang?

8

Tampaknya tidak ada cara untuk memeriksa nilai kotak centang on / off tunggal (boolean) dalam pemilih data untuk modul Aturan. Jika "field-MyField" = dicentang atau "field-MyField" = 1, maka lakukan 'bla'. Bisakah Aturan melakukan ini? Saya pasti melewatkan sesuatu

pengguna785179
sumber
Menggunakan PHP kustom tidak berfungsi ketika saya melakukan ini: echo ([node: field-MyField] == 1) ;. PHP berfungsi karena jika saya hanya mengembalikan true ;, maka itu berfungsi. Jadi apa yang terjadi???!?
user785179
Ya ternyata Anda tidak dapat menggunakan token di PHP khusus.
user785179

Jawaban:

6

Ada campuran rincian yang benar dan salah di sini, jadi saya akan mencoba memilahnya. Ini untuk Aturan pada Drupal 7, dan berlaku untuk bekerja dengan bidang Boolean.

Untuk membuat kondisi yang memeriksa keadaan Boolean bidang (benar / salah, ya / tidak, dicentang / tidak dicentang), pertama-tama pastikan bahwa Anda dapat mengakses bidang di pemilih data. Seperti yang disebutkan Bojan di atas, dan seperti yang disebutkan di halaman admin itu sendiri,

Untuk membuat bidang entitas muncul di pemilih data, Anda mungkin harus menggunakan kondisi 'entitas memiliki bidang' (atau 'konten bertipe').

Operator yang ingin Anda pilih adalah "sama dengan".

Untuk bidang "Nilai Data", Anda dapat memasukkan nilai dalam dua mode, pastikan Anda menggunakan "mode input langsung". Anda kemudian dapat memeriksa kotak centang yang mewakili BENAR untuk bidang itu.

Diterjemahkan, apa yang Anda katakan adalah, "Apakah bidang ini sama dengan BENAR?" Anda juga dapat meniadakannya dengan membiarkannya tidak dicentang atau menggunakan opsi "negasi" di bawah ini.

ezrock
sumber
Saya menghargai Anda meluangkan waktu untuk menjelaskan ini. Saya tidak harus menyentuh sesuatu seperti ini lagi, tetapi penjelasan Anda masuk akal. Saya harap ini membantu orang lain.
user785179
3

Anda cukup menambahkan kondisi "Perbandingan data", tentukan nama bidang, dan masukkan "1" sebagai nilainya. Jika bidang tidak muncul di daftar bidang, pertama-tama tambahkan kondisi "Entity memiliki bidang", dan pilih bidang di sana. Kemudian tambahkan "Perbandingan data" selanjutnya.

Bojan Zivanovic
sumber
Saya menempatkan 1 di nilai data dan saya mendapatkan: pemilih data 1 untuk nilai parameter tidak valid. Ada ide lain? Untuk memperjelas, data saya untuk membandingkan bidang adalah simpul: bidang-MyField. Perbandingan diatur ke EQUALS. Nilai data diatur ke 1.
user785179
2

Setelah beberapa jam coba-coba, saya akhirnya memecahkan masalah. Jangan meminta saya untuk menjelaskan ini karena tidak masuk akal bagi saya. Jika ada yang bisa menjelaskan, maka itu akan sangat dihargai!

Saya menetapkan kondisi baru menggunakan DATA COMPARISON. Saya kemudian pilih "node: field-MyField: 0" (sebenarnya ada hingga 4 di antaranya - node: field-MyField: 1, node: field-MyField: 2, dll.). Saya kemudian mengatur PERBANDINGAN ke EQUALS. Kemudian pada bagian pemilih data ke-2, itu tidak lagi merupakan pemilih data kotak input teks, tetapi sekarang muncul sebagai pemilih kotak centang data. Ketika saya mengklik pemilih data kotak centang itu, dan tekan save, sekarang modul aturan berfungsi dengan benar.

kepala poni di dinding

pengguna785179
sumber
0

Di versi Aturan yang diperbarui (tetap?), Untuk melakukan ini, tambahkan kondisi Perbandingan Data, pilih bidang yang sesuai di pemilih data node:field-to-check, lalu pada langkah selanjutnya biarkan operator perbandingan equals. Di grup Nilai data, akan ada kotak centang yang dinamai Aturan "Nilai Data" akan dibandingkan dengan nilai kotak centang seperti yang dikirimkan pada halaman ini.

Zxaos
sumber
0

Kemungkinan besar Anda harus menggunakan Dukungan Formulir Aturan .

Setelah Anda mengaktifkan aturan formulir untuk formulir tertentu, Anda bisa menggunakan kondisi seperti: Elemen formulir memiliki nilai . Kondisi ini dapat digunakan baik ketika formulir sedang dibangun atau divalidasi .

Modul lain yang perlu dipertimbangkan adalah Aturan Entitas .

kenorb
sumber