protected function contactIsMemberOfAllGroups($contact_id, $group_ids) { $isValid = 0; foreach ($group_ids as $gid) { if (CRM_CivirulesConditions_Utils_GroupContact::isContactInGroup($contact_id, $gid)) { $isValid++; } } if (count($group_ids) == $isValid && count($group_ids) > 0) { return true; } return false; }
/** * Process the action * * @param CRM_Civirules_EventData_EventData $eventData * @access public */ public function processAction(CRM_Civirules_EventData_EventData $eventData) { $entity = $this->getApiEntity(); $action = $this->getApiAction(); $contactId = $eventData->getContactId(); $action_params = $this->getActionParameters(); $group_ids = array(); if (!empty($action_params['group_id'])) { $group_ids = array($action_params['group_id']); } elseif (!empty($action_params['group_ids']) && is_array($action_params['group_ids'])) { $group_ids = $action_params['group_ids']; } foreach ($group_ids as $group_id) { if (CRM_CivirulesConditions_Utils_GroupContact::isContactInGroup($contactId, $group_id)) { $params = array(); $params['group_id'] = $group_id; //alter parameters by subclass $params = $this->alterApiParameters($params, $eventData); //execute the action $this->executeApiAction($entity, $action, $params); } } }