Secara terprogram jalankan set tindakan (modul Aturan)

23

Saya ingin menggunakan Aturan UI untuk mendefinisikan beberapa set tindakan, tetapi ingin menjalankan tindakan tersebut secara terprogram dari modul khusus.

Bagaimana saya menjalankan tindakan dengan kode dan meneruskan argumen yang diperlukan (hanya sebuah simpul dalam kasus ini).

Terima kasih!

valderama
sumber

Jawaban:

26

Jika Anda telah mengaturnya sebagai komponen aturan, Anda bisa menggunakan rules_invoke_component, alternatif yang bisa Anda gunakan untuk suatu acara, yang bisa memicu banyak aturan dengan menggunakan rules_invoke_event.

Keduanya serupa karena Anda memberikan nama / id terlebih dahulu dan sisa argumen lainnya diteruskan, jadi sesuatu seperti

 rules_invoke_component('name', $node);

jika aturan komponen khusus Anda memiliki beberapa parameter berikan satu per satu dan pisahkan dengan koma sebagai contoh

rules_invoke_component('rules_save_search_send_activation_sms',  'paramval1', 'paramval2', ....);

benar bagaimana Anda perlu melakukannya. Ini lagi tergantung pada bagaimana aturan / komponen didefinisikan dan dikonfigurasi.

googletorp
sumber
Terima kasih, itulah fungsi yang saya cari. Saya harus menyampaikan argumen secara langsung, mungkin - karena saya hanya memiliki satu argumen yang terkonfigurasi dalam komponen. rules_invoke_component('rules_mycomponent', $node);
valderama
@valderama, bagus saya memperbarui jawaban saya kalau-kalau orang lain membutuhkan info yang sama.
googletorp
Apakah ini berfungsi untuk drupal 6?
@landing Rules telah banyak berubah dari 6 menjadi 7, tetapi rules_invoke_eventada di 6 rules_invoke_componenttidak, tapi saya tidak percaya aturan di 6 memiliki konsep komponen.
googletorp
jika Anda memiliki komponen aturan khusus, berikan parameter satu per satu dan pisahkan dengan contoh komarules_invoke_component('rules_save_search_send_activation_sms', 'test ', '93333333333');
Yusef