프로그래밍 방식으로 동작 집합 실행 (규칙 모듈)


23

규칙 UI를 사용하여 일부 동작 집합을 정의하고 싶지만 사용자 지정 모듈에서 프로그래밍 방식으로 해당 동작을 실행하고 싶습니다.

코드로 작업을 실행하고 필요한 인수 (이 경우 노드)를 전달하는 방법.

감사!

답변:


26

이를 규칙 컴포넌트로 설정 한 rules_invoke_component경우을 사용할 수 있습니다 rules_invoke_event. 또는 을 사용하여 여러 규칙을 트리거 할 수있는 이벤트를 호출 할 수 있습니다 .

둘 다 이름 / ID를 먼저 전달하고 나머지 인수가 전달된다는 점에서 비슷합니다.

 rules_invoke_component('name', $node);

사용자 정의 구성 요소 규칙에 여러 매개 변수가있는 경우 하나씩 매개 변수를 전달하고 예를 들어 쉼표로 구분하십시오.

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

올바른 방법입니다. 이는 규칙 / 구성 요소가 어떻게 정의되고 구성되는지에 달려 있습니다.


고마워, 그것은 내가 찾던 기능이었습니다. 그래도 인수를 직접 전달해야했습니다. 아마도 구성 요소에 하나의 인수가 구성되어 있기 때문일 수 있습니다. rules_invoke_component('rules_mycomponent', $node);
valderama

@valderama, great 다른 사람들이 동일한 정보를 필요로하는 경우 답변을 업데이트했습니다.
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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.