You are here

public function wf_crm_admin_form::buildForm 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::buildForm()

Build admin form for civicrm tab of a webform

Return value

array

File

includes/wf_crm_admin_form.inc, line 37
Webform CiviCRM module's admin form.

Class

wf_crm_admin_form
@file Webform CiviCRM module's admin form.

Code

public function buildForm() {
  $this->form_state['storage']['nid'] = $this->node->nid;

  // Display confirmation message before deleting fields
  if (!empty($this->form_state['storage']['msg'])) {
    return $this
      ->buildConfirmationForm();
  }

  // Add css & js
  $this
    ->addResources();
  if (empty($this->form_state['values'])) {
    $this
      ->initializeForm();
  }
  else {
    $this
      ->rebuildForm();
  }

  // Merge in existing fields
  $existing = array_keys(wf_crm_enabled_fields($this->node, NULL, TRUE));
  $this->settings += array_fill_keys($existing, 'create_civicrm_webform_element');

  // Sort fields by set
  foreach ($this->fields as $fid => $field) {
    if (isset($field['set'])) {
      $set = $field['set'];
    }
    else {
      list($set) = explode('_', $fid, 2);
    }
    $this->sets[$set]['fields'][$fid] = $field;
  }

  // Build form fields
  $this
    ->buildFormIntro();
  foreach ($this->data['contact'] as $n => $c) {
    $this
      ->buildContactTab($n, $c);
  }
  $this
    ->buildMessageTabs();

  // Component tabs
  $this
    ->buildActivityTab();
  if (isset($this->sets['case'])) {
    $this
      ->buildCaseTab();
  }
  if (isset($this->sets['participant'])) {
    $this
      ->buildParticipantTab();
  }
  if (isset($this->sets['membership'])) {
    $this
      ->buildMembershipTab();
  }
  if (isset($this->sets['contribution'])) {
    $this
      ->buildContributionTab();
  }
  if (isset($this->sets['grant'])) {
    $this
      ->buildGrantTab();
  }
  $this
    ->buildOptionsTab();
  $this->form['actions']['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save Settings'),
  );
  return $this->form;
}