本文整理汇总了PHP中CRM_Contact_DAO_RelationshipType::free方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Contact_DAO_RelationshipType::free方法的具体用法?PHP CRM_Contact_DAO_RelationshipType::free怎么用?PHP CRM_Contact_DAO_RelationshipType::free使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Contact_DAO_RelationshipType
的用法示例。
在下文中一共展示了CRM_Contact_DAO_RelationshipType::free方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: import
//.........这里部分代码省略.........
}
if ($relationship) {
$primaryContactId = null;
if (civicrm_duplicate($newContact)) {
if (CRM_Utils_Rule::integer($newContact['error_message']['params'][0])) {
$primaryContactId = $newContact['error_message']['params'][0];
}
} else {
$primaryContactId = $newContact->id;
}
if ((civicrm_duplicate($newContact) || is_a($newContact, 'CRM_Contact_BAO_Contact')) && $primaryContactId) {
//relationship contact insert
foreach ($params as $key => $field) {
list($id, $first, $second) = CRM_Utils_System::explode('_', $key, 3);
if (!($first == 'a' && $second == 'b') && !($first == 'b' && $second == 'a')) {
continue;
}
$relationType = new CRM_Contact_DAO_RelationshipType();
$relationType->id = $id;
$relationType->find(true);
$direction = "contact_sub_type_{$second}";
$formatting = array('contact_type' => $params[$key]['contact_type']);
//set subtype for related contact CRM-5125
if (isset($relationType->{$direction})) {
//validation of related contact subtype for update mode
if ($relCsType = CRM_Utils_Array::value('contact_sub_type', $params[$key]) && $relCsType != $relationType->{$direction}) {
$errorMessage = ts("Mismatched or Invalid contact subtype found for this related contact");
array_unshift($values, $errorMessage);
return CRM_Import_Parser::NO_MATCH;
} else {
$formatting['contact_sub_type'] = $relationType->{$direction};
}
}
$relationType->free();
$contactFields = null;
$contactFields = CRM_Contact_DAO_Contact::import();
//Relation on the basis of External Identifier.
if (!CRM_Utils_Array::value('id', $params[$key]) && isset($params[$key]['external_identifier'])) {
$params[$key]['id'] = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $params[$key]['external_identifier'], 'id', 'external_identifier');
}
// check for valid related contact id in update/fill mode, CRM-4424
if (in_array($onDuplicate, array(CRM_Import_Parser::DUPLICATE_UPDATE, CRM_Import_Parser::DUPLICATE_FILL)) && CRM_Utils_Array::value('id', $params[$key])) {
$relatedContactType = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $params[$key]['id'], 'contact_type');
if (!$relatedContactType) {
$errorMessage = ts("No contact found for this related contact ID: %1", array(1 => $params[$key]['id']));
array_unshift($values, $errorMessage);
return CRM_Import_Parser::NO_MATCH;
} else {
//validation of related contact subtype for update mode
//CRM-5125
$relatedCsType = null;
if (CRM_Utils_Array::value('contact_sub_type', $formatting)) {
$relatedCsType = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $params[$key]['id'], 'contact_sub_type');
}
if (!empty($relatedCsType) && (!CRM_Contact_BAO_ContactType::isAllowEdit($params[$key]['id'], $relatedCsType) || $relatedCsType != CRM_Utils_Array::value('contact_sub_type', $formatting))) {
$errorMessage = ts("Mismatched or Invalid contact subtype found for this related contact ID: %1", array(1 => $params[$key]['id']));
array_unshift($values, $errorMessage);
return CRM_Import_Parser::NO_MATCH;
} else {
// get related contact id to format data in update/fill mode,
//if external identifier is present, CRM-4423
$formatting['id'] = $params[$key]['id'];
}
}
}
//format common data, CRM-4062
示例2: import
//.........这里部分代码省略.........
}
if ($relationship) {
$primaryContactId = NULL;
if (CRM_Core_Error::isAPIError($newContact, CRM_Core_ERROR::DUPLICATE_CONTACT)) {
if (CRM_Utils_Rule::integer($newContact['error_message']['params'][0])) {
$primaryContactId = $newContact['error_message']['params'][0];
}
} else {
$primaryContactId = $newContact->id;
}
if ((CRM_Core_Error::isAPIError($newContact, CRM_Core_ERROR::DUPLICATE_CONTACT) || is_a($newContact, 'CRM_Contact_BAO_Contact')) && $primaryContactId) {
//relationship contact insert
foreach ($params as $key => $field) {
list($id, $first, $second) = CRM_Utils_System::explode('_', $key, 3);
if (!($first == 'a' && $second == 'b') && !($first == 'b' && $second == 'a')) {
continue;
}
$relationType = new CRM_Contact_DAO_RelationshipType();
$relationType->id = $id;
$relationType->find(TRUE);
$direction = "contact_sub_type_{$second}";
$formatting = array('contact_type' => $params[$key]['contact_type']);
//set subtype for related contact CRM-5125
if (isset($relationType->{$direction})) {
//validation of related contact subtype for update mode
if ($relCsType = CRM_Utils_Array::value('contact_sub_type', $params[$key]) && $relCsType != $relationType->{$direction}) {
$errorMessage = ts("Mismatched or Invalid contact subtype found for this related contact.");
array_unshift($values, $errorMessage);
return CRM_Import_Parser::NO_MATCH;
} else {
$formatting['contact_sub_type'] = $relationType->{$direction};
}
}
$relationType->free();
$contactFields = NULL;
$contactFields = CRM_Contact_DAO_Contact::import();
//Relation on the basis of External Identifier.
if (empty($params[$key]['id']) && !empty($params[$key]['external_identifier'])) {
$params[$key]['id'] = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $params[$key]['external_identifier'], 'id', 'external_identifier');
}
// check for valid related contact id in update/fill mode, CRM-4424
if (in_array($onDuplicate, array(CRM_Import_Parser::DUPLICATE_UPDATE, CRM_Import_Parser::DUPLICATE_FILL)) && !empty($params[$key]['id'])) {
$relatedContactType = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $params[$key]['id'], 'contact_type');
if (!$relatedContactType) {
$errorMessage = ts("No contact found for this related contact ID: %1", array(1 => $params[$key]['id']));
array_unshift($values, $errorMessage);
return CRM_Import_Parser::NO_MATCH;
} else {
//validation of related contact subtype for update mode
//CRM-5125
$relatedCsType = NULL;
if (!empty($formatting['contact_sub_type'])) {
$relatedCsType = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $params[$key]['id'], 'contact_sub_type');
}
if (!empty($relatedCsType) && (!CRM_Contact_BAO_ContactType::isAllowEdit($params[$key]['id'], $relatedCsType) && $relatedCsType != CRM_Utils_Array::value('contact_sub_type', $formatting))) {
$errorMessage = ts("Mismatched or Invalid contact subtype found for this related contact.") . ' ' . ts("ID: %1", array(1 => $params[$key]['id']));
array_unshift($values, $errorMessage);
return CRM_Import_Parser::NO_MATCH;
} else {
// get related contact id to format data in update/fill mode,
//if external identifier is present, CRM-4423
$formatting['id'] = $params[$key]['id'];
}
}
}
//format common data, CRM-4062