You are here

public function Cluster::optionsForm in Openlayers 7.3

@TODO What is this return? If it is the form, why is form by reference?

Overrides Base::optionsForm

File

src/Plugin/Source/Cluster/Cluster.php, line 23
Source: Cluster.

Class

Cluster
Class Cluster.

Namespace

Drupal\openlayers\Plugin\Source\Cluster

Code

public function optionsForm(array &$form, array &$form_state) {
  $form['options']['source'] = array(
    '#type' => 'select',
    '#title' => t('Source'),
    '#empty_option' => t('- Select a Source -'),
    '#default_value' => $this
      ->getOption('source', ''),
    '#description' => t('Select the source.'),
    '#options' => Openlayers::loadAllAsOptions('Source'),
    '#required' => TRUE,
  );
  $form['options']['distance'] = array(
    '#type' => 'textfield',
    '#title' => t('Cluster distance'),
    '#default_value' => isset($form_state['item']->options['distance']) ? $form_state['item']->options['distance'] : 50,
    '#description' => t('Cluster distance.'),
  );
  $zoomDistance = $this
    ->getOption('zoomDistance', array());
  $zoomDistance = array_map(function ($v, $k) {
    return $k . ':' . $v;
  }, $zoomDistance, array_keys($zoomDistance));
  $form['options']['zoomDistance'] = array(
    '#title' => t('Set cluster distance per zoom level'),
    '#description' => t('Define a zoom level / cluster distance per line. Use the notation zoom:distance. If no value is given for a zoom level it falls back to the default distance.'),
    '#type' => 'textarea',
    '#default_value' => implode(PHP_EOL, array_values($zoomDistance)),
  );
}