You are here

public function LocationInputManager::getForm in Geolocation Field 8.3

Same name and namespace in other branches
  1. 8.2 src/LocationInputManager.php \Drupal\geolocation\LocationInputManager::getForm()

Alter output.

Parameters

array $settings: Option settings.

mixed $context: Context.

array|null $default_value: Form values.

Return value

array Centre value.

File

src/LocationInputManager.php, line 222

Class

LocationInputManager
Search plugin manager.

Namespace

Drupal\geolocation

Code

public function getForm(array $settings, $context = NULL, array $default_value = NULL) {
  $form = [];

  /*
   * Centre handling.
   */
  foreach ($settings as $option_id => $option) {

    // Ignore if not enabled.
    if (empty($option['enable'])) {
      continue;
    }
    if (!$this
      ->hasDefinition($option['location_input_id'])) {
      continue;
    }

    /** @var \Drupal\geolocation\LocationInputInterface $location_input_plugin */
    $location_input_plugin = $this
      ->createInstance($option['location_input_id']);
    $plugin_form = $location_input_plugin
      ->getForm($option_id, empty($option['settings']) ? [] : $option['settings'], $context, $default_value);
    if ($plugin_form) {
      $form = NestedArray::mergeDeep($plugin_form, $form);
    }
  }
  return $form;
}