You are here

public function GeolocationShapes::getSettingsForm in Geolocation Field 8.3

Provide a generic map settings form array.

Parameters

array $settings: The current map settings.

array $parents: Form specific optional prefix.

Return value

array A form array to be integrated in whatever.

Overrides MapFeatureBase::getSettingsForm

File

src/Plugin/geolocation/MapFeature/GeolocationShapes.php, line 51

Class

GeolocationShapes
Redraw locations as shapes.

Namespace

Drupal\geolocation\Plugin\geolocation\MapFeature

Code

public function getSettingsForm(array $settings, array $parents) {
  $states_prefix = array_shift($parents) . '[' . implode('][', $parents) . ']';
  $form['remove_markers'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Remove markers'),
    '#description' => $this
      ->t('Remove location elements and markers from output.'),
    '#default_value' => $settings['remove_markers'],
  ];
  $form['polyline'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Draw polyline'),
    '#description' => $this
      ->t('A polyline is a linear overlay of connected line segments on the map.'),
    '#default_value' => $settings['polyline'],
  ];
  $form['polyline_title'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Polyline title (Tokens supported)'),
    '#default_value' => $settings['polyline_title'],
    '#states' => [
      'visible' => [
        [
          'input[name="' . $states_prefix . '[polyline]"]' => [
            'checked' => TRUE,
          ],
        ],
      ],
    ],
  ];
  $form['strokeColor'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Stroke color'),
    '#description' => $this
      ->t('The stroke color. All CSS3 colors are supported except for extended named colors.'),
    '#size' => 4,
    '#default_value' => $settings['strokeColor'],
    '#states' => [
      'visible' => [
        [
          'input[name="' . $states_prefix . '[polyline]"]' => [
            'checked' => TRUE,
          ],
        ],
        [
          'input[name="' . $states_prefix . '[polygon]"]' => [
            'checked' => TRUE,
          ],
        ],
      ],
    ],
  ];
  $form['strokeOpacity'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Stroke opacity'),
    '#description' => $this
      ->t('The stroke opacity between 0.0 and 1.0.'),
    '#size' => 2,
    '#default_value' => $settings['strokeOpacity'],
    '#states' => [
      'visible' => [
        [
          'input[name="' . $states_prefix . '[polyline]"]' => [
            'checked' => TRUE,
          ],
        ],
        [
          'input[name="' . $states_prefix . '[polygon]"]' => [
            'checked' => TRUE,
          ],
        ],
      ],
    ],
  ];
  $form['strokeWidth'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Stroke width'),
    '#description' => $this
      ->t('The stroke width in pixels.'),
    '#size' => 2,
    '#default_value' => $settings['strokeWidth'],
    '#states' => [
      'visible' => [
        [
          'input[name="' . $states_prefix . '[polyline]"]' => [
            'checked' => TRUE,
          ],
        ],
        [
          'input[name="' . $states_prefix . '[polygon]"]' => [
            'checked' => TRUE,
          ],
        ],
      ],
    ],
  ];
  $form['polygon'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Draw polygon'),
    '#description' => $this
      ->t('Polygons form a closed loop and define a filled region.'),
    '#default_value' => $settings['polygon'],
  ];
  $form['polygon_title'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Polygon title (Tokens supported)'),
    '#default_value' => $settings['polygon_title'],
    '#states' => [
      'visible' => [
        [
          'input[name="' . $states_prefix . '[polygon]"]' => [
            'checked' => TRUE,
          ],
        ],
      ],
    ],
  ];
  $form['fillColor'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Fill color'),
    '#description' => $this
      ->t('The fill color. All CSS3 colors are supported except for extended named colors.'),
    '#size' => 4,
    '#default_value' => $settings['fillColor'],
    '#states' => [
      'visible' => [
        'input[name="' . $states_prefix . '[polygon]"]' => [
          'checked' => TRUE,
        ],
      ],
    ],
  ];
  $form['fillOpacity'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Fill opacity'),
    '#description' => $this
      ->t('The fill opacity between 0.0 and 1.0.'),
    '#size' => 4,
    '#default_value' => $settings['fillOpacity'],
    '#states' => [
      'visible' => [
        'input[name="' . $states_prefix . '[polygon]"]' => [
          'checked' => TRUE,
        ],
      ],
    ],
  ];
  return $form;
}