本文整理汇总了PHP中CRM_Contact_BAO_Relationship::getValues方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Contact_BAO_Relationship::getValues方法的具体用法?PHP CRM_Contact_BAO_Relationship::getValues怎么用?PHP CRM_Contact_BAO_Relationship::getValues使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Contact_BAO_Relationship
的用法示例。
在下文中一共展示了CRM_Contact_BAO_Relationship::getValues方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testCreateProfileContact
/**
* Test case for createProfileContact.
*/
public function testCreateProfileContact()
{
$fields = CRM_Contact_BAO_Contact::exportableFields('Individual');
//current employer field for individual
$fields['organization_name'] = array('name' => 'organization_name', 'where' => 'civicrm_organization.organization_name', 'title' => 'Current Employer');
//get the common params
$contactParams = $this->contactParams();
$unsetParams = array('location', 'privacy');
foreach ($unsetParams as $param) {
unset($contactParams[$param]);
}
$profileParams = array('organization_name' => 'Yahoo', 'gender_id' => '2', 'prefix_id' => '3', 'suffix_id' => '2', 'city-Primary' => 'Newark', 'contact_type' => 'Individual', 'country-Primary' => '1228', 'do_not_email' => '1', 'do_not_mail' => '1', 'do_not_phone' => '1', 'do_not_trade' => '1', 'do_not_sms' => '1', 'email-Primary' => 'john.smith@example.org', 'geo_code_1-Primary' => '18.219023', 'geo_code_2-Primary' => '-105.00973', 'im-Primary-provider_id' => '1', 'im-Primary' => 'john.smith', 'on_hold' => '1', 'openid' => 'john.smith@example.org', 'phone-Primary-1' => '303443689', 'phone-Primary-2' => '9833910234', 'postal_code-Primary' => '01903', 'postal_code_suffix-Primary' => '12345', 'state_province-Primary' => '1029', 'street_address-Primary' => 'Saint Helier St', 'supplemental_address_1-Primary' => 'Hallmark Ct', 'supplemental_address_2-Primary' => 'Jersey Village', 'user_unique_id' => '123456789', 'is_bulkmail' => '1', 'world_region' => 'India', 'tag' => array('3' => '1', '4' => '1', '1' => '1'));
$createParams = array_merge($contactParams, $profileParams);
//create the contact using create profile contact.
$contactId = CRM_Contact_BAO_Contact::createProfileContact($createParams, $fields, NULL, NULL, NULL, NULL, TRUE);
//get the parameters to compare.
$params = $this->contactParams();
//check the values in DB.
foreach ($params as $key => $val) {
if (!is_array($params[$key])) {
if ($key == 'contact_source') {
$this->assertDBCompareValue('CRM_Contact_DAO_Contact', $contactId, 'source', 'id', $params[$key], "Check for {$key} creation.");
} else {
$this->assertDBCompareValue('CRM_Contact_DAO_Contact', $contactId, $key, 'id', $params[$key], "Check for {$key} creation.");
}
}
}
//check privacy options.
foreach ($params['privacy'] as $key => $value) {
$this->assertDBCompareValue('CRM_Contact_DAO_Contact', $contactId, $key, 'id', $params['privacy'][$key], 'Check for do_not_email creation.');
}
$this->assertDBCompareValue('CRM_Contact_DAO_Contact', $contactId, 'contact_type', 'id', $profileParams['contact_type'], 'Check for contact type creation.');
$this->assertDBCompareValue('CRM_Contact_DAO_Contact', $contactId, 'user_unique_id', 'id', $profileParams['user_unique_id'], 'Check for user_unique_id creation.');
$this->assertDBCompareValue('CRM_Contact_DAO_Contact', $contactId, 'birth_date', 'id', $params['birth_date'], 'Check for birth_date creation.');
$this->assertDBCompareValue('CRM_Contact_DAO_Contact', $contactId, 'deceased_date', 'id', $params['deceased_date'], 'Check for deceased_date creation.');
$dbPrefComm = explode(CRM_Core_DAO::VALUE_SEPARATOR, CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $contactId, 'preferred_communication_method', 'id', TRUE));
$checkPrefComm = array();
foreach ($dbPrefComm as $key => $value) {
if ($value) {
$checkPrefComm[$value] = 1;
}
}
$this->assertAttributesEquals($checkPrefComm, $params['preferred_communication_method']);
//Now check DB for Address
$searchParams = array('contact_id' => $contactId, 'location_type_id' => 1, 'is_primary' => 1);
$compareParams = array('street_address' => CRM_Utils_Array::value('street_address-Primary', $profileParams), 'supplemental_address_1' => CRM_Utils_Array::value('supplemental_address_1-Primary', $profileParams), 'supplemental_address_2' => CRM_Utils_Array::value('supplemental_address_2-Primary', $profileParams), 'city' => CRM_Utils_Array::value('city-Primary', $profileParams), 'postal_code' => CRM_Utils_Array::value('postal_code-Primary', $profileParams), 'country_id' => CRM_Utils_Array::value('country-Primary', $profileParams), 'state_province_id' => CRM_Utils_Array::value('state_province-Primary', $profileParams), 'geo_code_1' => CRM_Utils_Array::value('geo_code_1-Primary', $profileParams), 'geo_code_2' => CRM_Utils_Array::value('geo_code_2-Primary', $profileParams));
$this->assertDBCompareValues('CRM_Core_DAO_Address', $searchParams, $compareParams);
//Now check DB for Email
$compareParams = array('email' => CRM_Utils_Array::value('email-Primary', $profileParams));
$this->assertDBCompareValues('CRM_Core_DAO_Email', $searchParams, $compareParams);
//Now check DB for IM
$compareParams = array('name' => CRM_Utils_Array::value('im-Primary', $profileParams), 'provider_id' => CRM_Utils_Array::value('im-Primary-provider_id', $profileParams));
$this->assertDBCompareValues('CRM_Core_DAO_IM', $searchParams, $compareParams);
//Now check DB for Phone
$searchParams = array('contact_id' => $contactId, 'location_type_id' => 1, 'is_primary' => 1);
$compareParams = array('phone' => CRM_Utils_Array::value('phone-Primary-1', $profileParams));
$this->assertDBCompareValues('CRM_Core_DAO_Phone', $searchParams, $compareParams);
//Now check DB for Mobile
$searchParams = array('contact_id' => $contactId, 'location_type_id' => 1, 'phone_type_id' => CRM_Utils_Array::value('phone_type_id', $params['phone'][2]));
$compareParams = array('phone' => CRM_Utils_Array::value('phone-Primary-2', $profileParams));
$this->assertDBCompareValues('CRM_Core_DAO_Phone', $searchParams, $compareParams);
//get the value of relationship
$values = array();
$searchParams = array('contact_id' => $contactId);
$relationship = CRM_Contact_BAO_Relationship::getValues($searchParams, $values);
//Now check values of Relationship Count.
$this->assertEquals(0, $values['relationship']['totalCount'], 'Check for total relationship count');
foreach ($values['relationship']['data'] as $key => $val) {
//Now check values of Relationship organization.
$this->assertEquals($profileParams['organization_name'], $val['name'], 'Check for organization');
//Now check values of Relationship type.
$this->assertEquals('Employee of', $val['relation'], 'Check for relationship type');
//delete the organization.
$this->contactDelete(CRM_Utils_Array::value('cid', $val));
}
//Now check values of tag ids.
$tags = CRM_Core_BAO_EntityTag::getTag($contactId);
foreach ($tags as $key => $val) {
$tagIds[$key] = 1;
}
$this->assertAttributesEquals($profileParams['tag'], $tagIds);
//update Contact mode
$updateCParams = array('first_name' => 'john', 'last_name' => 'doe', 'contact_type' => 'Individual', 'middle_name' => 'abc', 'prefix_id' => 2, 'suffix_id' => 3, 'nick_name' => 'Nick Name Updated', 'job_title' => 'software Developer', 'gender_id' => 1, 'is_deceased' => 1, 'website' => array(1 => array('website_type_id' => 1, 'url' => 'http://civicrmUpdate.org')), 'contact_source' => 'test contact', 'external_identifier' => 111222333, 'preferred_mail_format' => 'Both', 'is_opt_out' => 0, 'legal_identifier' => '123123123123', 'image_URL' => 'http://imageupdate.com', 'deceased_date' => '1981-10-10', 'birth_date' => '1951-11-11', 'privacy' => array('do_not_phone' => 1, 'do_not_email' => 1), 'preferred_communication_method' => array('1' => 0, '2' => 1, '3' => 0, '4' => 1, '5' => 0));
$updatePfParams = array('organization_name' => 'Google', 'city-Primary' => 'Mumbai', 'contact_type' => 'Individual', 'country-Primary' => '1228', 'do_not_email' => '1', 'do_not_mail' => '1', 'do_not_phone' => '1', 'do_not_trade' => '1', 'do_not_sms' => '1', 'email-Primary' => 'john.doe@example.org', 'geo_code_1-Primary' => '31.694842', 'geo_code_2-Primary' => '-106.29998', 'im-Primary-provider_id' => '1', 'im-Primary' => 'john.doe', 'on_hold' => '1', 'openid' => 'john.doe@example.org', 'phone-Primary-1' => '02115245336', 'phone-Primary-2' => '9766323895', 'postal_code-Primary' => '12345', 'postal_code_suffix-Primary' => '123', 'state_province-Primary' => '1004', 'street_address-Primary' => 'Oberoi Garden', 'supplemental_address_1-Primary' => 'A-wing:3037', 'supplemental_address_2-Primary' => 'Andhery', 'user_unique_id' => '1122334455', 'is_bulkmail' => '1', 'world_region' => 'India', 'tag' => array('2' => '1', '5' => '1'));
$createParams = array_merge($updateCParams, $updatePfParams);
//create the contact using create profile contact.
$contactID = CRM_Contact_BAO_Contact::createProfileContact($createParams, $fields, $contactId, NULL, NULL, NULL, TRUE);
//check the contact ids
$this->assertEquals($contactId, $contactID, 'check for Contact ids');
//check the values in DB.
foreach ($updateCParams as $key => $val) {
if (!is_array($updateCParams[$key])) {
if ($key == 'contact_source') {
$this->assertDBCompareValue('CRM_Contact_DAO_Contact', $contactId, 'source', 'id', $updateCParams[$key], "Check for {$key} creation.");
} else {
$this->assertDBCompareValue('CRM_Contact_DAO_Contact', $contactId, $key, 'id', $updateCParams[$key], "Check for {$key} creation.");
}
//.........这里部分代码省略.........
示例2: unset
/**
* Takes a bunch of params that are needed to match certain criteria and
* retrieves the relevant objects. Typically the valid params are only
* contact_id. We'll tweak this function to be more full featured over a period
* of time. This is the inverse function of create. It also stores all the retrieved
* values in the default array
*
* @param array $params (reference ) an assoc array of name/value pairs
* @param array $defaults (reference ) an assoc array to hold the name / value pairs
* in a hierarchical manner
* @param array $ids (reference) the array that holds all the db ids
* @param boolean $microformat for location in microformat
*
* @return object CRM_Contact_BAO_Contact object
* @access public
* @static
*/
static function &retrieve(&$params, &$defaults, $microformat = false)
{
if (array_key_exists('contact_id', $params)) {
$params['id'] = $params['contact_id'];
} else {
if (array_key_exists('id', $params)) {
$params['contact_id'] = $params['id'];
}
}
$contact = self::_getValues($params, $defaults);
unset($params['id']);
//get the block information for this contact
$entityBlock = array('contact_id' => $params['contact_id']);
$blocks = CRM_Core_BAO_Location::getValues($entityBlock, $microformat);
$defaults = array_merge($defaults, $blocks);
foreach ($blocks as $block => $value) {
$contact->{$block} = $value;
}
$contact->notes =& CRM_Core_BAO_Note::getValues($params, $defaults);
$contact->relationship =& CRM_Contact_BAO_Relationship::getValues($params, $defaults);
$contact->groupContact =& CRM_Contact_BAO_GroupContact::getValues($params, $defaults);
return $contact;
}
示例3: elseif
/**
* Fetch object based on array of properties.
*
* @param array $params
* (reference ) an assoc array of name/value pairs.
* @param array $defaults
* (reference ) an assoc array to hold the name / value pairs.
* in a hierarchical manner
* @param bool $microformat
* For location in microformat.
*
* @return CRM_Contact_BAO_Contact
*/
public static function &retrieve(&$params, &$defaults, $microformat = FALSE)
{
if (array_key_exists('contact_id', $params)) {
$params['id'] = $params['contact_id'];
} elseif (array_key_exists('id', $params)) {
$params['contact_id'] = $params['id'];
}
$contact = self::getValues($params, $defaults);
unset($params['id']);
//get the block information for this contact
$entityBlock = array('contact_id' => $params['contact_id']);
$blocks = CRM_Core_BAO_Location::getValues($entityBlock, $microformat);
$defaults = array_merge($defaults, $blocks);
foreach ($blocks as $block => $value) {
$contact->{$block} = $value;
}
if (!isset($params['noNotes'])) {
$contact->notes = CRM_Core_BAO_Note::getValues($params, $defaults);
}
if (!isset($params['noRelationships'])) {
$contact->relationship = CRM_Contact_BAO_Relationship::getValues($params, $defaults);
}
if (!isset($params['noGroups'])) {
$contact->groupContact = CRM_Contact_BAO_GroupContact::getValues($params, $defaults);
}
if (!isset($params['noWebsite'])) {
$contact->website = CRM_Core_BAO_Website::getValues($params, $defaults);
}
return $contact;
}
示例4: retrieve
/**
* Takes a bunch of params that are needed to match certain criteria and
* retrieves the relevant objects. Typically the valid params are only
* contact_id. We'll tweak this function to be more full featured over a period
* of time. This is the inverse function of create. It also stores all the retrieved
* values in the default array
*
* @param array $params (reference ) an assoc array of name/value pairs
* @param array $defaults (reference ) an assoc array to hold the name / value pairs
* in a hierarchical manner
* @param array $ids (reference) the array that holds all the db ids
*
* @return object CRM_Contact_BAO_Contact object
* @access public
* @static
*/
function retrieve(&$params, &$defaults, &$ids)
{
$contact = CRM_Contact_BAO_Contact::getValues($params, $defaults, $ids);
unset($params['id']);
require_once str_replace('_', DIRECTORY_SEPARATOR, "CRM_Contact_BAO_" . $contact->contact_type) . ".php";
eval('$contact->contact_type_object =& CRM_Contact_BAO_' . $contact->contact_type . '::getValues( $params, $defaults, $ids );');
$locParams = $params + array('entity_id' => $params['contact_id'], 'entity_table' => CRM_Contact_BAO_Contact::getTableName());
$contact->location =& CRM_Core_BAO_Location::getValues($locParams, $defaults, $ids, 3);
$contact->notes =& CRM_Core_BAO_Note::getValues($params, $defaults, $ids);
$contact->relationship =& CRM_Contact_BAO_Relationship::getValues($params, $defaults, $ids);
$contact->groupContact =& CRM_Contact_BAO_GroupContact::getValues($params, $defaults, $ids);
$activityParam = array('entity_id' => $params['contact_id']);
$contact->activity =& CRM_Core_BAO_History::getValues($activityParam, $defaults, 'Activity');
$activityParam = array('contact_id' => $params['contact_id']);
$defaults['openActivity'] = array('data' => CRM_Contact_BAO_Contact::getOpenActivities($activityParam, 0, 3), 'totalCount' => CRM_Contact_BAO_Contact::getNumOpenActivity($params['contact_id']));
return $contact;
}