copyValues($params); if (!$activityContact->find(TRUE)) { return $activityContact->save(); } return $activityContact; } /** * function to retrieve names of contact by activity_id * * @param int $id ID of the activity * @param string $type type of interaction * * @return array * * @access public * */ static function getNames($activityID, $recordTypeID, $alsoIDs = FALSE) { $names = array(); $ids = array(); if (empty($activityID)) { return $alsoIDs ? array($names, $ids) : $names; } $query = " SELECT contact_a.id, contact_a.sort_name FROM civicrm_contact contact_a INNER JOIN civicrm_activity_contact ON civicrm_activity_contact.contact_id = contact_a.id WHERE civicrm_activity_contact.activity_id = %1 AND civicrm_activity_contact.record_type_id = %2 AND contact_a.is_deleted = 0 "; $params = array( 1 => array($activityID, 'Integer'), 2 => array($recordTypeID, 'Integer') ); $dao = CRM_Core_DAO::executeQuery($query, $params); while ($dao->fetch()) { $names[$dao->id] = $dao->sort_name; $ids[] = $dao->id; } return $alsoIDs ? array($names, $ids) : $names; } /** * function to retrieve id of target contact by activity_id * * @param int $id ID of the activity * * @return mixed * * @access public * */ static function retrieveContactIdsByActivityId($activityID, $recordTypeID) { $activityContact = array(); if (!CRM_Utils_Rule::positiveInteger($activityID) || !CRM_Utils_Rule::positiveInteger($recordTypeID)) { return $activityContact; } $sql = " SELECT contact_id FROM civicrm_activity_contact INNER JOIN civicrm_contact ON contact_id = civicrm_contact.id WHERE activity_id = %1 AND record_type_id = %2 AND civicrm_contact.is_deleted = 0 "; $params = array( 1 => array($activityID, 'Integer'), 2 => array($recordTypeID, 'Integer') ); $dao = CRM_Core_DAO::executeQuery($sql, $params); while ($dao->fetch()) { $activityContact[] = $dao->contact_id; } return $activityContact; } function links() { $link = array('activity_id' => 'civicrm_activity:id'); return $link; } }