public function AdminForm::buildForm in Webform CiviCRM Integration 8.5
Build admin form for civicrm tab of a webform
Return value
array
File
- src/
AdminForm.php, line 68 - Webform CiviCRM module's admin form.
Class
- AdminForm
- @file Webform CiviCRM module's admin form.
Namespace
Drupal\webform_civicrmCode
public function buildForm() {
$this->form_state
->set('nid', $this->webform
->id());
$utils = \Drupal::service('webform_civicrm.utils');
// Display confirmation message before deleting fields
if (!empty($this->form_state
->get('msg'))) {
return $this
->buildConfirmationForm();
}
// Add css & js
$this
->addResources();
if (empty($this->form_state
->getValues())) {
$this
->initializeForm();
}
else {
$this
->rebuildForm();
}
// Merge in existing fields
$existing = array_keys($utils
->wf_crm_enabled_fields($this->webform, 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'] = [
'#type' => 'submit',
'#value' => t('Save Settings'),
];
return $this->form;
}