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,
);
}