本文整理汇总了PHP中CRM_Core_BAO_CustomGroup::formatCustomValues方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Core_BAO_CustomGroup::formatCustomValues方法的具体用法?PHP CRM_Core_BAO_CustomGroup::formatCustomValues怎么用?PHP CRM_Core_BAO_CustomGroup::formatCustomValues使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Core_BAO_CustomGroup
的用法示例。
在下文中一共展示了CRM_Core_BAO_CustomGroup::formatCustomValues方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: postProcess
//.........这里部分代码省略.........
list($n, $id) = explode('-', $part);
if (isset($this->_params['billing_' . $part])) {
$addressFields[$n] = $this->_params['billing_' . $part];
}
}
require_once 'CRM/Utils/Address.php';
$this->assign('address', CRM_Utils_Address::format($addressFields));
$date = CRM_Utils_Date::format($params['credit_card_exp_date']);
$date = CRM_Utils_Date::mysqlToIso($date);
$this->assign('credit_card_exp_date', $date);
$this->assign('credit_card_number', CRM_Utils_System::mungeCreditCard($params['credit_card_number']));
$this->assign('credit_card_type', $params['credit_card_type']);
$this->assign('contributeMode', 'direct');
$this->assign('isAmountzero', 0);
$this->assign('is_pay_later', 0);
$this->assign('isPrimary', 1);
}
$this->assign('register_date', $params['register_date']);
if ($params['receive_date']) {
$this->assign('receive_date', $params['receive_date']);
}
$participant = array(array('participant_id', '=', $participants[0]->id, 0, 0));
// check whether its a test drive ref CRM-3075
if (CRM_Utils_Array::value('is_test', $this->_defaultValues)) {
$participant[] = array('participant_test', '=', 1, 0, 0);
}
$template =& CRM_Core_Smarty::singleton();
$customGroup = array();
//format submitted data
foreach ($params['custom'] as $fieldID => $values) {
foreach ($values as $fieldValue) {
$customValue = array('data' => $fieldValue['value']);
$customFields[$fieldID]['id'] = $fieldID;
$formattedValue = CRM_Core_BAO_CustomGroup::formatCustomValues($customValue, $customFields[$fieldID]);
$customGroup[$customFields[$fieldID]['groupTitle']][$customFields[$fieldID]['label']] = str_replace(' ', '', $formattedValue);
}
}
foreach ($this->_contactIds as $num => $contactID) {
// Retrieve the name and email of the contact - this will be the TO for receipt email
list($this->_contributorDisplayName, $this->_contributorEmail, $this->_toDoNotEmail) = CRM_Contact_BAO_Contact::getContactDetails($contactID);
$this->_contributorDisplayName = $this->_contributorDisplayName == ' ' ? $this->_contributorEmail : $this->_contributorDisplayName;
$this->assign('customGroup', $customGroup);
$this->assign('contactID', $contactID);
$this->assign('participantID', $participants[$num]->id);
if ($this->_isPaidEvent) {
// fix amount for each of participants ( for bulk mode )
$eventAmount = array();
$eventAmount[$num] = array('label' => $params['amount_level'], 'amount' => $params['fee_amount']);
//as we are using same template for online & offline registration.
//So we have to build amount as array.
$this->assign('amount', $eventAmount);
}
$sendTemplateParams = array('groupName' => 'msg_tpl_workflow_event', 'valueName' => 'event_offline_receipt', 'contactId' => $contactID, 'isTest' => (bool) CRM_Utils_Array::value('is_test', $this->_defaultValues));
// try to send emails only if email id is present
// and the do-not-email option is not checked for that contact
if ($this->_contributorEmail and !$this->_toDoNotEmail) {
$sendTemplateParams['from'] = $receiptFrom;
$sendTemplateParams['toName'] = $this->_contributorDisplayName;
$sendTemplateParams['toEmail'] = $this->_contributorEmail;
}
require_once 'CRM/Core/BAO/MessageTemplates.php';
list($mailSent, $subject, $message, $html) = CRM_Core_BAO_MessageTemplates::sendTemplate($sendTemplateParams);
if ($mailSent) {
$sent[] = $contactID;
} else {
$notSent[] = $contactID;
示例2: postProcess
//.........这里部分代码省略.........
foreach ($addressParts as $part) {
list($n, $id) = explode('-', $part);
if (isset($this->_params['billing_' . $part])) {
$addressFields[$n] = $this->_params['billing_' . $part];
}
}
$this->assign('address', CRM_Utils_Address::format($addressFields));
$date = CRM_Utils_Date::format($params['credit_card_exp_date']);
$date = CRM_Utils_Date::mysqlToIso($date);
$this->assign('credit_card_exp_date', $date);
$this->assign('credit_card_number', CRM_Utils_System::mungeCreditCard($params['credit_card_number']));
$this->assign('credit_card_type', $params['credit_card_type']);
$this->assign('contributeMode', 'direct');
$this->assign('isAmountzero', 0);
$this->assign('is_pay_later', 0);
$this->assign('isPrimary', 1);
}
$this->assign('register_date', $params['register_date']);
if ($params['receive_date']) {
$this->assign('receive_date', $params['receive_date']);
}
$participant = array(array('participant_id', '=', $participants[0]->id, 0, 0));
// check whether its a test drive ref CRM-3075
if (!empty($this->_defaultValues['is_test'])) {
$participant[] = array('participant_test', '=', 1, 0, 0);
}
$template = CRM_Core_Smarty::singleton();
$customGroup = array();
//format submitted data
foreach ($params['custom'] as $fieldID => $values) {
foreach ($values as $fieldValue) {
$customValue = array('data' => $fieldValue['value']);
$customFields[$fieldID]['id'] = $fieldID;
$formattedValue = CRM_Core_BAO_CustomGroup::formatCustomValues($customValue, $customFields[$fieldID], TRUE);
$customGroup[$customFields[$fieldID]['groupTitle']][$customFields[$fieldID]['label']] = str_replace(' ', '', $formattedValue);
}
}
foreach ($this->_contactIds as $num => $contactID) {
// Retrieve the name and email of the contact - this will be the TO for receipt email
list($this->_contributorDisplayName, $this->_contributorEmail, $this->_toDoNotEmail) = CRM_Contact_BAO_Contact::getContactDetails($contactID);
$this->_contributorDisplayName = $this->_contributorDisplayName == ' ' ? $this->_contributorEmail : $this->_contributorDisplayName;
$waitStatus = CRM_Event_PseudoConstant::participantStatus(NULL, "class = 'Waiting'");
if ($waitingStatus = CRM_Utils_Array::value($params['status_id'], $waitStatus)) {
$this->assign('isOnWaitlist', TRUE);
}
$this->assign('customGroup', $customGroup);
$this->assign('contactID', $contactID);
$this->assign('participantID', $participants[$num]->id);
$this->_id = $participants[$num]->id;
if ($this->_isPaidEvent) {
// fix amount for each of participants ( for bulk mode )
$eventAmount = array();
$invoiceSettings = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::CONTRIBUTE_PREFERENCES_NAME, 'contribution_invoice_settings');
$invoicing = CRM_Utils_Array::value('invoicing', $invoiceSettings);
$totalTaxAmount = 0;
//add dataArray in the receipts in ADD and UPDATE condition
$dataArray = array();
if ($this->_action & CRM_Core_Action::ADD) {
$line = $lineItem[0];
} elseif ($this->_action & CRM_Core_Action::UPDATE) {
$line = $this->_values['line_items'];
}
if ($invoicing) {
foreach ($line as $key => $value) {
if (isset($value['tax_amount'])) {
$totalTaxAmount += $value['tax_amount'];
示例3: postProcess
/**
* This function is called after the user submits the form.
*
* @access public
*
* @return none
*/
public function postProcess()
{
global $user;
$isAdmin = in_array('civihr_admin', $user->roles) ? true : false;
$session = CRM_Core_Session::singleton();
$submitValues = $this->_submitValues;
if (!empty($submitValues['contacts_id'])) {
$this->_targetContactID = $submitValues['contacts_id'];
}
$absentDateDurations = array();
$activityStatus = CRM_HRAbsence_BAO_HRAbsenceType::getActivityStatus('name');
$activityStatusId['status_id'] = CRM_Utils_Array::key('Completed', $activityStatus);
if (!empty($submitValues['date_values'])) {
foreach (explode('|', $submitValues['date_values']) as $key => $dateString) {
if ($dateString) {
$values = explode('(', $dateString);
$date = CRM_Utils_Date::processDate($values[0]);
$valuesDate = explode(':', $dateString);
$absentDateDurations[$date]['duration'] = (int) $valuesDate[1];
if (isset($valuesDate[2]) && $valuesDate[2] == 1 && $this->_showhide == 1 && array_key_exists('_qf_AbsenceRequest_done_save', $submitValues) || isset($valuesDate[2]) && $valuesDate[2] == 0 && $this->_showhide == 0 && array_key_exists('_qf_AbsenceRequest_done_save', $submitValues)) {
$absentDateDurations[$date]['approval'] = CRM_Utils_Array::key('Scheduled', $activityStatus);
} elseif (isset($valuesDate[2]) && $valuesDate[2] == 0 && $this->_showhide == 1) {
$absentDateDurations[$date]['approval'] = CRM_Utils_Array::key('Rejected', $activityStatus);
} elseif (array_key_exists('_qf_AbsenceRequest_done_saveandapprove', $submitValues) || array_key_exists('_qf_AbsenceRequest_done_approve', $submitValues)) {
$absentDateDurations[$date]['approval'] = CRM_Utils_Array::key('Completed', $activityStatus);
}
}
}
}
// set email template values
$taDays = explode('|', $submitValues['tot_app_days']);
$totDays = $taDays[0];
if (!empty($taDays[1])) {
$appDays = $taDays[1];
}
$msgTempResult = civicrm_api3('MessageTemplate', 'get', array('msg_title' => "Absence Email"));
$targetContactResult = civicrm_api3('contact', 'get', array('id' => $this->_targetContactID));
$mailprm[$this->_targetContactID]['display_name'] = $targetContactResult['values'][$this->_targetContactID]['display_name'];
$mailprm[$this->_targetContactID]['email'] = $targetContactResult['values'][$this->_targetContactID]['email'];
$tplParams = array('messageTemplateID' => $msgTempResult['values'][$msgTempResult['id']]['id'], 'empName' => $mailprm[$this->_targetContactID]['display_name'], 'absenceType' => $this->_absenceType, 'absentDateDurations' => $absentDateDurations, 'startDate' => $submitValues['start_date'], 'endDate' => $submitValues['end_date'], 'empPosition' => $this->_empPosition, 'totDays' => $totDays, 'jobHoursTime' => $this->_jobHoursTime);
if (!empty($appDays)) {
$tplParams['appDays'] = $appDays;
}
$sendTemplateParams = array('messageTemplateID' => $tplParams['messageTemplateID'], 'contactId' => $this->_targetContactID, 'tplParams' => $tplParams);
if ($this->_action & CRM_Core_Action::ADD) {
$activityParam = array('sequential' => 1, 'source_contact_id' => $this->_loginUserID, 'target_contact_id' => $this->_targetContactID, 'assignee_contact_id' => $this->_managerContactID, 'activity_type_id' => $this->_activityTypeID);
if (array_key_exists('_qf_AbsenceRequest_done_saveandapprove', $submitValues) || $isAdmin) {
$activityParam['status_id'] = CRM_Utils_Array::key('Completed', $activityStatus);
} else {
//we want to keep the activity status in Scheduled for new absence if save button is clicked
$activityParam['status_id'] = CRM_Utils_Array::key('Scheduled', $activityStatus);
}
$result = civicrm_api3('Activity', 'create', $activityParam);
//save the custom data
if (!empty($submitValues['hidden_custom'])) {
$customFields = CRM_Utils_Array::crmArrayMerge(CRM_Core_BAO_CustomField::getFields('Activity', FALSE, FALSE, $this->_activityTypeID), CRM_Core_BAO_CustomField::getFields('Activity', FALSE, FALSE, NULL, NULL, TRUE));
$customValues = CRM_Core_BAO_CustomField::postProcess($submitValues, $customFields, $result['id'], 'Activity');
CRM_Core_BAO_CustomValueTable::store($customValues, 'civicrm_activity', $result['id']);
}
if (!empty($customValues)) {
$customGroup = array();
foreach ($customValues as $fieldID => $values) {
foreach ($values as $fieldValue) {
$customValue = array('data' => $fieldValue['value']);
$customFields[$fieldID]['id'] = $fieldID;
$formattedValue = CRM_Core_BAO_CustomGroup::formatCustomValues($customValue, $customFields[$fieldID], TRUE);
$customGroup[$customFields[$fieldID]['groupTitle']][$customFields[$fieldID]['label']] = str_replace(' ', '', $formattedValue);
}
}
$sendTemplateParams['tplParams']['customGroup'] = $customGroup;
}
$activityLeavesParam = array('sequential' => 1, 'source_record_id' => $result['id'], 'activity_type_id' => CRM_Core_OptionGroup::getValue('activity_type', 'Absence', 'name'));
foreach ($absentDateDurations as $date => $duration) {
$activityLeavesParam['activity_date_time'] = $date;
$activityLeavesParam['duration'] = $duration['duration'];
$activityLeavesParam['status_id'] = $duration['approval'];
civicrm_api3('Activity', 'create', $activityLeavesParam);
}
if (array_key_exists('_qf_AbsenceRequest_done_save', $submitValues)) {
$sendTemplateParams['from'] = $mailprm[$this->_targetContactID]['email'];
CRM_Core_Session::setStatus(ts('Absence(s) have been applied.'), ts('Saved'), 'success');
} elseif (array_key_exists('_qf_AbsenceRequest_done_saveandapprove', $submitValues) || $isAdmin) {
if (!empty($this->_managerContactID)) {
$emailID = civicrm_api3('contact', 'get', array('id' => $this->_loginUserID));
$sendTemplateParams['from'] = $emailID['values'][$emailID['id']]['email'];
}
$sendTemplateParams['tplParams']['approval'] = TRUE;
CRM_Core_Session::setStatus(ts('Absence(s) have been applied and approved.'), ts('Saved'), 'success');
}
$managerContactResult = array();
if (!empty($this->_managerContactID)) {
foreach ($this->_managerContactID as $key => $val) {
$managerContactResult = civicrm_api3('contact', 'get', array('id' => $val));
//.........这里部分代码省略.........
示例4: getRowsElementsAndInfo
//.........这里部分代码省略.........
}
}
}
// add the related tables and unset the ones that don't sport any of the duplicate contact's info
$config = CRM_Core_Config::singleton();
$mainUfId = CRM_Core_BAO_UFMatch::getUFId($mainId);
$mainUser = NULL;
if ($mainUfId) {
// d6 compatible
if ($config->userSystem->is_drupal == '1' && function_exists($mainUser)) {
$mainUser = user_load($mainUfId);
} elseif ($config->userFramework == 'Joomla') {
$mainUser = JFactory::getUser($mainUfId);
}
}
$otherUfId = CRM_Core_BAO_UFMatch::getUFId($otherId);
$otherUser = NULL;
if ($otherUfId) {
// d6 compatible
if ($config->userSystem->is_drupal == '1' && function_exists($mainUser)) {
$otherUser = user_load($otherUfId);
} elseif ($config->userFramework == 'Joomla') {
$otherUser = JFactory::getUser($otherUfId);
}
}
$relTables = CRM_Dedupe_Merger::relTables();
$activeRelTables = CRM_Dedupe_Merger::getActiveRelTables($otherId);
$activeMainRelTables = CRM_Dedupe_Merger::getActiveRelTables($mainId);
foreach ($relTables as $name => $null) {
if (!in_array($name, $activeRelTables) && !($name == 'rel_table_users' && in_array($name, $activeMainRelTables))) {
unset($relTables[$name]);
continue;
}
$relTableElements[] = array('checkbox', "move_{$name}");
$migrationInfo["move_{$name}"] = 1;
$relTables[$name]['main_url'] = str_replace('$cid', $mainId, $relTables[$name]['url']);
$relTables[$name]['other_url'] = str_replace('$cid', $otherId, $relTables[$name]['url']);
if ($name == 'rel_table_users') {
$relTables[$name]['main_url'] = str_replace('%ufid', $mainUfId, $relTables[$name]['url']);
$relTables[$name]['other_url'] = str_replace('%ufid', $otherUfId, $relTables[$name]['url']);
$find = array('$ufid', '$ufname');
if ($mainUser) {
$replace = array($mainUfId, $mainUser->name);
$relTables[$name]['main_title'] = str_replace($find, $replace, $relTables[$name]['title']);
}
if ($otherUser) {
$replace = array($otherUfId, $otherUser->name);
$relTables[$name]['other_title'] = str_replace($find, $replace, $relTables[$name]['title']);
}
}
if ($name == 'rel_table_memberships') {
$elements[] = array('checkbox', "operation[move_{$name}][add]", NULL, ts('add new'));
$migrationInfo["operation"]["move_{$name}"]['add'] = 1;
}
}
foreach ($relTables as $name => $null) {
$relTables["move_{$name}"] = $relTables[$name];
unset($relTables[$name]);
}
// handle custom fields
$mainTree = CRM_Core_BAO_CustomGroup::getTree($main['contact_type'], CRM_Core_DAO::$_nullObject, $mainId, -1, CRM_Utils_Array::value('contact_sub_type', $main));
$otherTree = CRM_Core_BAO_CustomGroup::getTree($main['contact_type'], CRM_Core_DAO::$_nullObject, $otherId, -1, CRM_Utils_Array::value('contact_sub_type', $other));
CRM_Core_DAO::freeResult();
foreach ($otherTree as $gid => $group) {
$foundField = FALSE;
if (!isset($group['fields'])) {
continue;
}
foreach ($group['fields'] as $fid => $field) {
if (in_array($fid, $diffs['custom'])) {
if (!$foundField) {
$rows["custom_group_{$gid}"]['title'] = $group['title'];
$foundField = TRUE;
}
if (!empty($mainTree[$gid]['fields'][$fid]['customValue'])) {
foreach ($mainTree[$gid]['fields'][$fid]['customValue'] as $valueId => $values) {
$rows["move_custom_{$fid}"]['main'] = CRM_Core_BAO_CustomGroup::formatCustomValues($values, $field, TRUE);
}
}
$value = "null";
if (!empty($otherTree[$gid]['fields'][$fid]['customValue'])) {
foreach ($otherTree[$gid]['fields'][$fid]['customValue'] as $valueId => $values) {
$rows["move_custom_{$fid}"]['other'] = CRM_Core_BAO_CustomGroup::formatCustomValues($values, $field, TRUE);
if ($values['data'] === 0 || $values['data'] === '0') {
$values['data'] = $qfZeroBug;
}
$value = $values['data'] ? $values['data'] : $value;
}
}
$rows["move_custom_{$fid}"]['title'] = $field['label'];
$elements[] = array('advcheckbox', "move_custom_{$fid}", NULL, NULL, NULL, $value);
$migrationInfo["move_custom_{$fid}"] = $value;
}
}
}
$result = array('rows' => $rows, 'elements' => $elements, 'rel_table_elements' => $relTableElements, 'main_loc_block' => $mainLocBlock, 'rel_tables' => $relTables, 'main_details' => $main, 'other_details' => $other, 'migration_info' => $migrationInfo);
$result['main_details']['loc_block_ids'] = $locBlockIds['main'];
$result['other_details']['loc_block_ids'] = $locBlockIds['other'];
return $result;
}
示例5: preProcess
//.........这里部分代码省略.........
$locTypes[$moniker][$name] = array();
} else {
$locValue[$moniker][$name] = true;
foreach ($blockValue as $count => $blkValues) {
$fldName = $name;
$locTypeId = $blkValues['location_type_id'];
if ($name == 'im') {
$fldName = 'name';
}
if ($name == 'address') {
$fldName = 'display';
}
$locLabel[$moniker][$name][$count] = $blkValues[$fldName];
$locTypes[$moniker][$name][$count] = $locTypeId;
if ($moniker == 'main' && $name == 'address') {
$mainLocAddress["main_{$locTypeId}"] = $blkValues[$fldName];
$this->_locBlockIds['main']['address'][$locTypeId] = $blkValues['id'];
} else {
$this->_locBlockIds[$moniker][$name][$count] = $blkValues['id'];
}
}
}
}
if ($locValue['other'][$name] != 0) {
foreach ($locLabel['other'][$name] as $count => $value) {
$locTypeId = $locTypes['other'][$name][$count];
$rows["move_location_{$name}_{$count}"]['other'] = $value;
$rows["move_location_{$name}_{$count}"]['main'] = $locLabel['main'][$name][$count];
$rows["move_location_{$name}_{$count}"]['title'] = ts('%1:%2:%3', array(1 => $block, 2 => $count, 3 => $allLocationTypes[$locTypeId]));
$this->addElement('advcheckbox', "move_location_{$name}_{$count}");
// make sure default location type is always on top
$mainLocTypeId = CRM_Utils_Array::value($count, $locTypes['main'][$name], $locTypeId);
$locTypeValues = $allLocationTypes;
$defaultLocType = array($mainLocTypeId => $locTypeValues[$mainLocTypeId]);
unset($locTypeValues[$mainLocTypeId]);
// keep 1-1 mapping for address - location type.
$js = null;
if ($name == 'address' && !empty($mainLocAddress)) {
$js = array('onChange' => "mergeAddress( this, {$count} );");
}
$this->addElement('select', "location[{$name}][{$count}][locTypeId]", null, $defaultLocType + $locTypeValues, $js);
if ($name != 'address') {
$this->addElement('advcheckbox', "location[{$name}][{$count}][operation]", null, ts('add new'));
}
}
}
}
$this->assign('mainLocAddress', json_encode($mainLocAddress));
// handle custom fields
$mainTree =& CRM_Core_BAO_CustomGroup::getTree($this->_contactType, $this, $this->_cid, -1);
$otherTree =& CRM_Core_BAO_CustomGroup::getTree($this->_contactType, $this, $this->_oid, -1);
if (!isset($diffs['custom'])) {
$diffs['custom'] = array();
}
foreach ($otherTree as $gid => $group) {
$foundField = false;
if (!isset($group['fields'])) {
continue;
}
foreach ($group['fields'] as $fid => $field) {
if (in_array($fid, $diffs['custom'])) {
if (!$foundField) {
$rows["custom_group_{$gid}"]['title'] = $group['title'];
$foundField = true;
}
if (is_array($mainTree[$gid]['fields'][$fid]['customValue'])) {
foreach ($mainTree[$gid]['fields'][$fid]['customValue'] as $valueId => $values) {
$rows["move_custom_{$fid}"]['main'] = CRM_Core_BAO_CustomGroup::formatCustomValues($values, $field);
}
}
if (is_array($otherTree[$gid]['fields'][$fid]['customValue'])) {
foreach ($otherTree[$gid]['fields'][$fid]['customValue'] as $valueId => $values) {
$rows["move_custom_{$fid}"]['other'] = CRM_Core_BAO_CustomGroup::formatCustomValues($values, $field);
$value = $values['data'] ? $values['data'] : $this->_qfZeroBug;
}
}
$rows["move_custom_{$fid}"]['title'] = $field['label'];
$this->addElement('advcheckbox', "move_custom_{$fid}", null, null, null, $value);
}
}
}
$this->assign('rows', $rows);
// add the related tables and unset the ones that don't sport any of the duplicate contact's info
$relTables = CRM_Dedupe_Merger::relTables();
$activeRelTables = CRM_Dedupe_Merger::getActiveRelTables($oid);
foreach ($relTables as $name => $null) {
if (!in_array($name, $activeRelTables)) {
unset($relTables[$name]);
continue;
}
$this->addElement('checkbox', "move_{$name}");
$relTables[$name]['main_url'] = str_replace('$cid', $cid, $relTables[$name]['url']);
$relTables[$name]['other_url'] = str_replace('$cid', $oid, $relTables[$name]['url']);
}
foreach ($relTables as $name => $null) {
$relTables["move_{$name}"] = $relTables[$name];
unset($relTables[$name]);
}
$this->assign('rel_tables', $relTables);
}
示例6: getRowsElementsAndInfo
//.........这里部分代码省略.........
// End if 'other' location for this type exists
}
// End loop through each location block entity
// add the related tables and unset the ones that don't sport any of the duplicate contact's info
$config = CRM_Core_Config::singleton();
$mainUfId = CRM_Core_BAO_UFMatch::getUFId($mainId);
$mainUser = NULL;
if ($mainUfId) {
// d6 compatible
if ($config->userSystem->is_drupal == '1' && function_exists($mainUser)) {
$mainUser = user_load($mainUfId);
} elseif ($config->userFramework == 'Joomla') {
$mainUser = JFactory::getUser($mainUfId);
}
}
$otherUfId = CRM_Core_BAO_UFMatch::getUFId($otherId);
$otherUser = NULL;
if ($otherUfId) {
// d6 compatible
if ($config->userSystem->is_drupal == '1' && function_exists($mainUser)) {
$otherUser = user_load($otherUfId);
} elseif ($config->userFramework == 'Joomla') {
$otherUser = JFactory::getUser($otherUfId);
}
}
$relTables = CRM_Dedupe_Merger::relTables();
$activeRelTables = CRM_Dedupe_Merger::getActiveRelTables($otherId);
$activeMainRelTables = CRM_Dedupe_Merger::getActiveRelTables($mainId);
foreach ($relTables as $name => $null) {
if (!in_array($name, $activeRelTables) && !($name == 'rel_table_users' && in_array($name, $activeMainRelTables))) {
unset($relTables[$name]);
continue;
}
$relTableElements[] = array('checkbox', "move_{$name}");
$migrationInfo["move_{$name}"] = 1;
$relTables[$name]['main_url'] = str_replace('$cid', $mainId, $relTables[$name]['url']);
$relTables[$name]['other_url'] = str_replace('$cid', $otherId, $relTables[$name]['url']);
if ($name == 'rel_table_users') {
$relTables[$name]['main_url'] = str_replace('%ufid', $mainUfId, $relTables[$name]['url']);
$relTables[$name]['other_url'] = str_replace('%ufid', $otherUfId, $relTables[$name]['url']);
$find = array('$ufid', '$ufname');
if ($mainUser) {
$replace = array($mainUfId, $mainUser->name);
$relTables[$name]['main_title'] = str_replace($find, $replace, $relTables[$name]['title']);
}
if ($otherUser) {
$replace = array($otherUfId, $otherUser->name);
$relTables[$name]['other_title'] = str_replace($find, $replace, $relTables[$name]['title']);
}
}
if ($name == 'rel_table_memberships') {
$elements[] = array('checkbox', "operation[move_{$name}][add]", NULL, ts('add new'));
$migrationInfo["operation"]["move_{$name}"]['add'] = 1;
}
}
foreach ($relTables as $name => $null) {
$relTables["move_{$name}"] = $relTables[$name];
unset($relTables[$name]);
}
// handle custom fields
$mainTree = CRM_Core_BAO_CustomGroup::getTree($main['contact_type'], CRM_Core_DAO::$_nullObject, $mainId, -1, CRM_Utils_Array::value('contact_sub_type', $main));
$otherTree = CRM_Core_BAO_CustomGroup::getTree($main['contact_type'], CRM_Core_DAO::$_nullObject, $otherId, -1, CRM_Utils_Array::value('contact_sub_type', $other));
CRM_Core_DAO::freeResult();
foreach ($otherTree as $gid => $group) {
$foundField = FALSE;
if (!isset($group['fields'])) {
continue;
}
foreach ($group['fields'] as $fid => $field) {
if (in_array($fid, $compareFields['custom'])) {
if (!$foundField) {
$rows["custom_group_{$gid}"]['title'] = $group['title'];
$foundField = TRUE;
}
if (!empty($mainTree[$gid]['fields'][$fid]['customValue'])) {
foreach ($mainTree[$gid]['fields'][$fid]['customValue'] as $valueId => $values) {
$rows["move_custom_{$fid}"]['main'] = CRM_Core_BAO_CustomGroup::formatCustomValues($values, $field, TRUE);
}
}
$value = "null";
if (!empty($otherTree[$gid]['fields'][$fid]['customValue'])) {
foreach ($otherTree[$gid]['fields'][$fid]['customValue'] as $valueId => $values) {
$rows["move_custom_{$fid}"]['other'] = CRM_Core_BAO_CustomGroup::formatCustomValues($values, $field, TRUE);
if ($values['data'] === 0 || $values['data'] === '0') {
$values['data'] = $qfZeroBug;
}
$value = $values['data'] ? $values['data'] : $value;
}
}
$rows["move_custom_{$fid}"]['title'] = $field['label'];
$elements[] = array('advcheckbox', "move_custom_{$fid}", NULL, NULL, NULL, $value);
$migrationInfo["move_custom_{$fid}"] = $value;
}
}
}
$result = array('rows' => $rows, 'elements' => $elements, 'rel_table_elements' => $relTableElements, 'main_loc_block' => $mainLocBlock, 'rel_tables' => $relTables, 'main_details' => $main, 'other_details' => $other, 'migration_info' => $migrationInfo);
$result['main_details']['location_blocks'] = $locations['main'];
$result['other_details']['location_blocks'] = $locations['other'];
return $result;
}