You are here

function leaflet_widget_field_widget_settings_form in Leaflet Widget for Geofield 7.2

Same name and namespace in other branches
  1. 7 leaflet_widget.module \leaflet_widget_field_widget_settings_form()

Implements hook_field_widget_settings_form().

File

./leaflet_widget.module, line 47
Leaflet widget module for Geofield.

Code

function leaflet_widget_field_widget_settings_form($field, $instance) {
  $form = array();
  $settings = $instance['widget']['settings'];
  switch ($instance['widget']['type']) {
    case 'leaflet_widget_widget':
      $form['map'] = array(
        '#type' => 'fieldset',
        '#title' => t('Default map settings'),
      );
      $form['map']['base_url'] = array(
        '#type' => 'select',
        '#title' => t('Leaflet.draw widget settings'),
        '#default_value' => $settings['map']['base_url'],
        '#options' => leaflet_widget_base_layers(),
      );
      $form['map']['center'] = array(
        '#type' => 'fieldset',
        '#collapsed' => TRUE,
        '#collapsible' => TRUE,
        '#title' => 'Default map center',
      );
      $form['map']['center']['lat'] = array(
        '#type' => 'textfield',
        '#title' => t('Latitude'),
        '#default_value' => $settings['map']['center']['lat'],
        '#required' => TRUE,
      );
      $form['map']['center']['lng'] = array(
        '#type' => 'textfield',
        '#title' => t('Longtitude'),
        '#default_value' => $settings['map']['center']['lng'],
        '#required' => TRUE,
      );
      $form['map']['auto_center'] = array(
        '#type' => 'checkbox',
        '#title' => t('Automatically center map on existing features'),
        '#description' => t("This option overrides the widget's default center."),
        '#default_value' => $settings['map']['auto_center'],
      );
      $form['map']['zoom'] = array(
        '#type' => 'textfield',
        '#title' => t('Default zoom level'),
        '#default_value' => $settings['map']['zoom'],
        '#required' => TRUE,
      );

      // If the geocode module is available provide the option to use it.
      if (module_exists('geocoder')) {
        $form['geocoder'] = array(
          '#type' => 'fieldset',
          '#title' => t('Geocoder settings'),
          '#tree' => TRUE,
        );
        $form['geocoder']['enabled'] = array(
          '#type' => 'checkbox',
          '#title' => t('Show geocoder field'),
          '#default_value' => !empty($settings['geocoder']['enabled']),
        );
        $processors = array();
        foreach (geocoder_handler_info('text') as $item => $info) {
          $processors[$item] = $info['title'];
        }
        $form['geocoder']['handler'] = array(
          '#type' => 'select',
          '#title' => t('Handler to use'),
          '#options' => $processors,
          '#required' => TRUE,
          '#default_value' => $settings['geocoder']['handler'],
          '#states' => array(
            'visible' => array(
              ':input[name$="instance[widget][settings][geocoder][enabled]"]' => array(
                'checked' => TRUE,
              ),
            ),
          ),
        );
      }
      break;
  }
  return $form;
}