You are here

public static function wf_crm_admin_form::addFieldset in Webform CiviCRM Integration 7.4

Same name and namespace in other branches
  1. 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),
  );
}