You are here

function openlayers_field_field_widget_form in Openlayers 7.3

Implements hook_field_widget_form().

File

modules/openlayers_field/openlayers_field.module, line 353
Openlayers field module.

Code

function openlayers_field_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
  $allowed_maps = array_filter($instance['settings']['allowed_maps']);
  $widget = array();
  $options = array();
  foreach ($allowed_maps as $machine_name) {
    $map = \Drupal\openlayers\Openlayers::load('map', $machine_name);
    $options[$machine_name] = $map
      ->getMachineName();
  }
  if (empty($options)) {
    $options = \Drupal\openlayers\Openlayers::loadAllAsOptions('map');
  }
  if (isset($form['#type']) && $form['#type'] == 'fieldset') {
    $instance['settings']['force_default'] = FALSE;
  }
  switch ($instance['widget']['type']) {
    case 'openlayers_map_widget':
      $widget = array(
        '#type' => 'select',
        '#title' => 'Openlayers map',
        '#required' => $element['#required'],
        '#empty_value' => 0,
        '#options' => $options,
        '#default_value' => isset($items[$delta]['value']) ? $items[$delta]['value'] : NULL,
        '#description' => 'Select the map to display',
        '#access' => !$instance['settings']['force_default'],
      );
  }
  return array(
    'value' => $widget,
  );
}