Bagaimana cara mengubah nilai bidang dengan Aksi Aturan?

20

Saya mencoba menyiapkan Tindakan Aturan yang dapat mengubah nilai bidang. Saya membuat Set Tindakan dengan tipe data Node. Ketika saya pergi untuk membuat Tindakan Aturan, saya memiliki akses ke setiap bidang simpul Drupal default, tetapi tidak ada bidang.

Apakah ini sama sekali tidak mungkin? Apakah saya memerlukan modul lain untuk membuatnya berfungsi?

Joren
sumber

Jawaban:

15

Pertama-tama Anda perlu menambahkan kondisi untuk memeriksa apakah bidang ada pada simpul itu, hanya kemudian tersedia untuk tindakan. Ada syarat khusus untuk melakukan ini.

Berdir
sumber
1
Juga harus berupa aturan agar memiliki akses ke kondisi yang tampaknya.
Joren
6

Menggunakan kondisi "Entity has field" (atau "is is type") akan membuat bidang menjadi tersedia dengan pemilihan data dalam Tindakan "Tetapkan nilai data".

jcarballo
sumber
2

Tidak bertentangan dengan kedua jawaban sebelumnya, tetapi IMO keduanya hilang (mengabaikan?) Bagian penting dari pertanyaan, yaitu " ... Saya membuat Action Set ... ". Benar, bagian dari solusinya adalah, cukup yakin, " Entity has field" (seperti pada jawaban dari jcarballo ). Namun, dengan merancang Set Tindakan Peraturan , Anda tidak dapat memasukkan Ketentuan Aturan apa pun di dalamnya. Karenanya, salah satu dari yang berikut ini diperlukan untuk melengkapi jawaban atas pertanyaan ini:

Dengan pemikiran di atas, Anda harus dapat membuat Tindakan Aturan seperti (misalnya) "Tetapkan nilai data" untuk bidang Anda, jika Anda juga menambahkan kondisi Aturan Entity has field(terkait dengan bidang yang ingin Anda tetapkan nilai) . Dan pastikan untuk menambahkan Entity has fieldkondisi itu SEBELUM Aturan Aturan lain di mana Anda mungkin ingin merujuk ke bidang ini (jika Anda memiliki kondisi seperti itu dalam aturan Anda).

Itu juga yang disebutkan dalam UI Aturan, misalnya saat Anda menambahkan kondisi "perbandingan data": di suatu tempat dikatakan " Pemilih data membantu Anda menelusuri data yang tersedia untuk Aturan. Untuk membuat bidang entitas muncul di pemilih data , Anda mungkin harus menggunakan kondisi 'entitas memiliki bidang' (atau 'konten bertipe') ".

Untuk tutorial video yang mengilustrasikan pentingnya Entity has fieldkondisi ini , rujuk ke Tipe data dan pemilihan data , terutama yang ditunjukkan antara sekitar 13:30 dan 17:30 di dalamnya.

Pierre
sumber
Re: opsi kedua itu, seperti yang saya mengerti, Anda hanya dapat menggunakan Set Tindakan , bukan Aturan Set, sebagai tindakan yang tersedia di Views Operasi Massal (VBO). Rupanya ini karena View seharusnya mengambil beban memverifikasi bahwa entitas untuk diproses adalah yang sah yang diinginkan pengguna (baik dengan menggunakan Filter Views [reguler dan / atau Kontekstual] dan dengan memeriksa kotak centang hanya entitas yang diinginkan untuk memproses), sehingga kondisi tidak diperlukan. Tapi ini secara efektif menempatkan kunci celengan di dalam celengan. Jadi Aturan Bersyarat mungkin hanya apa yang diperintahkan dokter.
Joel MMCC