プログラムでアクションセットを実行する(ルールモジュール)


23

ルールUIを使用していくつかのアクションセットを定義しますが、それらのアクションをカスタムモジュールからプログラムで実行します。

コードでアクションを実行し、必要な引数(この場合はノードのみ)を渡す方法。

ありがとう!

回答:


26

ルールコンポーネントとして設定した場合、を使用できますrules_invoke_component。代わりに、を使用して複数のルールをトリガーできるイベントを呼び出すことができますrules_invoke_event

どちらも最初に名前/ IDを渡し、残りの引数が一緒に渡されるという点で似ています。

 rules_invoke_component('name', $node);

カスタムコンポーネントルールに複数のパラメーターがある場合、それらを1つずつ渡し、例としてコンマで区切ります

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

適切にあなたがそれをする方法です。これも、ルール/コンポーネントの定義および構成方法に依存します。


おかげで、まさにそれが私が探していた機能でした。ただし、引数を直接渡す必要がありました。おそらく、コンポーネントに1つの引数が設定されているためです。 rules_invoke_component('rules_mycomponent', $node);
バルデラマ

@valderama、他の人が同じ情報を必要とする場合に備えて、回答を更新しました。
googletorp

これはdrupal 6で機能しますか?

@landingルールは6から7に大きく変更されましたrules_invoke_eventが、6にrules_invoke_componentは存在しませんが、6のルールにはコンポーネントの概念があるとは思いません。
googletorp

カスタムルールコンポーネントがある場合は、パラメーターを1つずつ渡し、カンマの例で区切りますrules_invoke_component('rules_save_search_send_activation_sms', 'test ', '93333333333');
ユセフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.