web-dev-qa-db-fra.com

Exécuter par programme un ensemble d'actions (module Rules)

Je veux utiliser l'interface utilisateur de règles pour définir certains ensembles d'actions, mais je veux exécuter ces actions par programme à partir d'un module personnalisé.

Comment exécuter l'action par code et passer les arguments nécessaires (juste un nœud dans ce cas).

Merci!

22
valderama

Si vous l'avez configuré en tant que composant de règles, vous pouvez utiliser rules_invoke_component , alternative, vous pouvez invoquer un événement, qui pourrait déclencher plusieurs règles en utilisant rules_invoke_event .

Les deux sont similaires en ce que vous passez d'abord un nom/id et que le reste des arguments est transmis, donc quelque chose comme

 rules_invoke_component('name', $node);

si votre règle de composant personnalisé a plusieurs paramètres, passez-les un par un et séparez-les avec une virgule comme exemple

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

est bien comment vous devez le faire. Cela dépend à nouveau de la façon dont la règle/le composant est défini et configuré.

25
googletorp