function openlayers_field_field_formatter_settings_form in Openlayers 7.3
Implements hook_field_formatter_settings_form().
File
- modules/
openlayers_field/ openlayers_field.module, line 105 - Openlayers field module.
Code
function openlayers_field_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) {
$display = $instance['display'][$view_mode];
$settings = $display['settings'];
$element = array();
switch ($display['type']) {
case 'openlayers_map_formatter':
break;
case 'openlayers_geofile_formatter':
$options = array();
/** @var \Drupal\openlayers\Types\MapInterface $map */
foreach (\Drupal\openlayers\Openlayers::loadAll('map') as $map) {
/** @var \Drupal\openlayers\Types\LayerInterface $layer */
foreach ($map
->getCollection()
->getObjects('layer') as $layer) {
if ($source = $layer
->getSource()) {
$key = $map
->getMachineName() . ':' . $layer
->getMachineName();
$value = sprintf("%s: %s (%s)", $map
->getName(), $layer
->getName(), $layer
->getMachineName());
$options[$map
->getName()][$key] = $value;
}
}
}
$element['map_layer'] = array(
'#type' => 'select',
'#title' => 'Base map to use and vector layer to fill with the features',
'#description' => 'You may choose only vector layer having a Field type source',
'#options' => $options,
'#default_value' => $settings['map_layer'],
'#required' => TRUE,
);
break;
case 'openlayers_addressfield_textfield_formatter':
$options = array();
/** @var \Drupal\openlayers\Types\MapInterface $map */
foreach (\Drupal\openlayers\Openlayers::loadAll('map') as $map) {
/** @var \Drupal\openlayers\Types\LayerInterface $layer */
foreach ($map
->getCollection()
->getObjects('layer') as $layer) {
if ($source = $layer
->getSource()) {
if ('openlayers.Source:Field' == $source
->getFactoryService()) {
$key = $map
->getMachineName() . ':' . $layer
->getMachineName();
$value = sprintf("%s: %s (%s)", $map
->getName(), $layer
->getName(), $layer
->getMachineName());
$options[$map
->getName()][$key] = $value;
}
}
}
}
$element['map_layer'] = array(
'#type' => 'select',
'#title' => 'Base map to use and vector layer to fill with the features',
'#description' => 'You may choose only vector layer having a Field type source',
'#options' => $options,
'#default_value' => $settings['map_layer'],
'#required' => TRUE,
);
$geocoder_handlers = array();
foreach (geocoder_handler_info() as $name => $handler) {
$geocoder_handlers[$name] = $handler['title'];
}
$element['geocoder_handler'] = array(
'#type' => 'select',
'#title' => t('Geocoder handler'),
'#options' => $geocoder_handlers,
'#default_value' => $settings['geocoder_handler'],
);
$element['geocoder_cache'] = array(
'#type' => 'select',
'#title' => t('Geocoder cache type'),
'#description' => t('Type of geocoder cache to use'),
'#options' => array(
0 => t('No caching'),
1 => t('Static-cache but no persistent-cache'),
2 => t('Both static-cache and persistent-cache'),
),
'#default_value' => $settings['geocoder_cache'],
);
break;
}
return $element;
}