public static function wf_crm_admin_form::addFieldset in Webform CiviCRM Integration 7.4
Same name and namespace in other branches
- 7.5 includes/wf_crm_admin_form.inc \wf_crm_admin_form::addFieldset()
Create a fieldset around an entity if it doesn't already exist
Parameters
int $c:
array $field:
array $enabled:
array $settings:
string $ent:
bool $allow_create:
1 call to wf_crm_admin_form::addFieldset()
- wf_crm_admin_form::insertComponent in includes/
wf_crm_admin_form.inc - Add a CiviCRM field to a webform
File
- includes/
wf_crm_admin_form.inc, line 1943 - Webform CiviCRM module's admin form.
Class
- wf_crm_admin_form
- @file Webform CiviCRM module's admin form.
Code
public static function addFieldset($c, &$field, &$enabled, $settings, $ent = 'contact', $allow_create = FALSE) {
$type = in_array($ent, self::$fieldset_entities) ? $ent : 'contact';
// Custom fields are placed in fieldsets by group (for contact fields only)
if (strpos($field['form_key'], '_custom_') && $type == 'contact') {
$sid = explode('_custom', $field['form_key']);
$sid = $sid[0] . '_fieldset';
$customGroupKey = explode('_', $field['form_key'])[4];
$allow_create = $isCustom = TRUE;
}
else {
$sid = "civicrm_{$c}_{$type}_1_fieldset_fieldset";
}
if (!empty($settings['create_fieldsets']) && !isset($enabled[$sid]) && $allow_create) {
$new_set = array(
'nid' => $field['nid'],
'form_key' => $sid,
'type' => 'fieldset',
'weight' => $c,
);
$sets = wf_crm_get_fields('sets');
if (isset($isCustom)) {
$new_set['name'] = $sets[$customGroupKey]['label'];
$new_set['weight'] = 200 + (array_search($type, self::$fieldset_entities) * 10 + $c);
}
elseif ($type == 'contact') {
$new_set['name'] = wf_crm_contact_label($c, $settings['data']);
}
else {
$new_set['name'] = $sets[$type]['label'] . ($c > 1 ? " {$c}" : '');
$new_set['weight'] = 200 + (array_search($type, self::$fieldset_entities) * 10 + $c);
}
$new_set += webform_component_invoke('fieldset', 'defaults');
$enabled[$sid] = webform_component_insert($new_set);
}
$field += array(
'pid' => wf_crm_aval($enabled, $sid, 0),
);
}