You are here

protected function WebformElements::getConfigurationOptions in Salesforce Suite 8.3

Same name and namespace in other branches
  1. 8.4 modules/salesforce_webform/src/Plugin/SalesforceMappingField/WebformElements.php \Drupal\salesforce_webform\Plugin\SalesforceMappingField\WebformElements::getConfigurationOptions()
  2. 5.0.x modules/salesforce_webform/src/Plugin/SalesforceMappingField/WebformElements.php \Drupal\salesforce_webform\Plugin\SalesforceMappingField\WebformElements::getConfigurationOptions()

Form options helper.

1 call to WebformElements::getConfigurationOptions()
WebformElements::buildConfigurationForm in modules/salesforce_webform/src/Plugin/SalesforceMappingField/WebformElements.php
Form constructor.

File

modules/salesforce_webform/src/Plugin/SalesforceMappingField/WebformElements.php, line 97

Class

WebformElements
Adapter for Webform elements.

Namespace

Drupal\salesforce_webform\Plugin\SalesforceMappingField

Code

protected function getConfigurationOptions($mapping) {

  /** @var \Drupal\webform\Entity\Webform $webform */
  $webform = $this->entityTypeManager
    ->getStorage('webform')
    ->load($mapping
    ->get('drupal_bundle'));
  $webform_elements = $webform
    ->getElementsInitializedFlattenedAndHasValue();
  if (empty($webform_elements)) {
    return;
  }
  $options = [];

  // Loop over every field on the webform.
  foreach ($webform_elements as $element_id => $element) {
    if ($element['#type'] == 'webform_address') {
      $element = $webform
        ->getElement($element_id, TRUE);
      foreach ($element['#webform_composite_elements'] as $sub_element) {
        $options[$sub_element['#webform_composite_key']] = $element['#title'] . ': ' . (string) $sub_element['#title'];
      }
    }
    else {
      $options[$element_id] = $element['#title'];
    }
  }
  if (empty($options)) {
    return;
  }
  asort($options);
  return $options;
}