protected function wf_crm_webform_base::matchWebsiteTypes in Webform CiviCRM Integration 7.4
Same name and namespace in other branches
- 7.5 includes/wf_crm_webform_base.inc \wf_crm_webform_base::matchWebsiteTypes()
Organize values according to website types
Parameters
integer $c:
string $ent:
array $values:
Return value
array $reorderedArray
1 call to wf_crm_webform_base::matchWebsiteTypes()
- wf_crm_webform_base::reorderByLocationType in includes/
wf_crm_webform_base.inc - Reorder returned results according to settings chosen in wf_civicrm backend
File
- includes/
wf_crm_webform_base.inc, line 413
Class
- wf_crm_webform_base
- Class wf_crm_webform_base
Code
protected function matchWebsiteTypes($c, $ent, &$values) {
// create temporary settings array to include 'user-select' fields
// on the right place in array
$settingsArray = $this
->add_user_select_field_placeholder($ent, $this->settings['data']['contact'][$c]);
$userSelectIndex = 0;
// Go through the array and match up locations by type
// Put placeholder 'user-select' where location_type_id is empty for second pass
foreach ($settingsArray[$ent] as $setting) {
$valueFound = FALSE;
foreach ($values as $key => $value) {
if ($value[$ent . '_type_id'] == $setting[$ent . '_type_id']) {
$reorderedArray[$key] = $value;
$valueFound = TRUE;
unset($values[$key]);
break;
}
else {
if (empty($setting['website_type_id'])) {
// for 'user-select' fields
$valueFound = TRUE;
$reorderedArray['us' . $userSelectIndex] = 'user-select';
$userSelectIndex++;
break;
}
}
}
// always keep number of returned values equal to chosen settings
// if value is not found then set an empty array
if (!$valueFound) {
$reorderedArray[] = array();
}
}
return $reorderedArray;
}