Programlı bir eylem seti yürütme (Kurallar modülü)


23

Bazı eylem kümelerini tanımlamak için Kurallar Kullanıcı Arabirimi kullanmak istiyorum, ancak bu eylemleri özel bir modülden programlı olarak yürütmek istiyorum.

İşlemi kodla nasıl yürüttüğüm ve gerekli değişkenleri (bu durumda sadece bir düğüm) nasıl geçireceğim.

Teşekkürler!

Yanıtlar:


26

Bir kural bileşeni olarak ayarladıysanız, kullanabilirsiniz rules_invoke_component, alternatif kullanarak mutiple kurallarını tetikleyebilecek bir olayı başlatabilirsiniz.rules_invoke_event .

Her ikisi de, ilk önce bir ad / kimlik girmenizle ve benzerlerin kalanı boyunca geçirilmeleriyle aynıdır.

 rules_invoke_component('name', $node);

Özel bileşen kuralınızda birden fazla parametre varsa, bunları birer birer iletin ve bunları örnek olarak virgülle ayırın.

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

Yapmanız gereken nasıl düzgün. Bu yine kuralın / bileşenin nasıl tanımlandığı ve yapılandırıldığına bağlıdır.


Teşekkürler, tam da aradığım işlev buydu. Argümanı doğrudan iletmek zorunda kaldım - muhtemelen - çünkü sadece bileşende konfigüre edilmiş bir argüman var. rules_invoke_component('rules_mycomponent', $node);
valderama

@ valderama, great Başkalarının aynı bilgiye ihtiyaç duyması durumunda cevabımı güncelledim.
googletorp

Bu drupal 6 için çalışıyor mu?

@landing Kuralları 6'dan 7'ye çok değişti, ancak rules_invoke_event6'da rules_invoke_componentvar değil, ancak 6'da kuralların bileşen kavramına sahip olduğuna inanmıyorum.
googletorp

Özel kural bileşeniniz varsa, parametreleri birer birer aktarın ve virgül örneği ile ayırınrules_invoke_component('rules_save_search_send_activation_sms', 'test ', '93333333333');
Yusef
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.