प्रोग्राम सेट करें (नियम मॉड्यूल) निष्पादित करें


23

मैं कुछ एक्शन सेट को परिभाषित करने के लिए नियम यूआई का उपयोग करना चाहता हूं, लेकिन कस्टम मॉड्यूल से उन कार्यों को प्रोग्रामेटिक रूप से निष्पादित करना चाहता हूं।

मैं कोड द्वारा कार्रवाई को कैसे निष्पादित कर सकता हूं और आवश्यक तर्क पारित कर सकता हूं (बस इस मामले में एक नोड)।

धन्यवाद!

जवाबों:


26

यदि आपने इसे एक नियम घटक के रूप में स्थापित किया है, तो आप उपयोग कर सकते हैं rules_invoke_component, वैकल्पिक रूप से आप किसी ईवेंट को लागू कर सकते हैं, जिसे उपयोग करके म्यूटेंट नियमों को ट्रिगर किया जा सकता है rules_invoke_event

दोनों में समान है कि आप पहले एक नाम / आईडी पास करते हैं और बाकी के आर्ग्स को पास किया जाता है, इसलिए कुछ ऐसा है

 rules_invoke_component('name', $node);

यदि आपके कस्टम घटक नियम में कई पैरामीटर हैं तो उन्हें एक-एक करके पास करें और उदाहरण के तौर पर उन्हें अल्पविराम से अलग करें

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

ठीक से आप इसे कैसे करने की जरूरत है। यह फिर से निर्भर करता है कि नियम / घटक कैसे परिभाषित और कॉन्फ़िगर किया गया है।


धन्यवाद, ठीक यही वह कार्य था जिसकी मुझे तलाश थी। मुझे तर्क को सीधे पारित करना था, हालांकि - शायद इसलिए कि मेरे पास घटक में सिर्फ एक arg कॉन्फ़िगर है। rules_invoke_component('rules_mycomponent', $node);
वलडरमा

@valderama, महान मैंने अपने जवाब को अपडेट किया अगर दूसरों को समान जानकारी की आवश्यकता हो।
googletorp

क्या यह ड्रुपल 6 के लिए काम करता है?

@landing नियम 6 से 7 तक बहुत बदल गए हैं, लेकिन rules_invoke_event6 में मौजूद rules_invoke_componentनहीं है, लेकिन मेरा मानना ​​है कि 6 में नियमों में घटकों की अवधारणा नहीं है।
googletorp

यदि आपके पास कस्टम नियम है, तो मापदंडों को एक-एक करके पास करें और उन्हें अल्पविराम उदाहरण के साथ अलग करेंrules_invoke_component('rules_save_search_send_activation_sms', 'test ', '93333333333');
Yusef
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.