コード例 #1
0
 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;
 }
コード例 #2
0
 /**
  * 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);
         }
     }
 }