You are here

function openlayers_services_form_openlayers_map_form_preview_alter in Openlayers 7.3

Implements hook_form_FORM_ID_alter().

File

modules/openlayers_services/openlayers_services.module, line 85

Code

function openlayers_services_form_openlayers_map_form_preview_alter(&$form, &$form_state) {
  $map = \Drupal\openlayers\Openlayers::load('map', $form_state['item']);
  if ($map == FALSE || (bool) $map
    ->getOption('provideIframe', FALSE) == FALSE) {
    return;
  }
  $form['information']['openlayers_services'] = array(
    '#weight' => 10,
    '#type' => 'fieldset',
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#title' => 'Embed this map in an iframe',
  );
  foreach (services_endpoint_load_all() as $service) {
    if (isset($service->resources['openlayers-map']['operations']['retrieve']['enabled']) && $service->resources['openlayers-map']['operations']['retrieve']['enabled'] == 1) {
      $width = $map
        ->getOption('width', 'auto') == 'auto' ? '100%' : $map
        ->getOption('width', 'auto');
      $height = $map
        ->getOption('height', 'auto');
      $iframe = "<iframe src='" . url('openlayers/openlayers-map/' . $map
        ->getMachineName(), array(
        'absolute' => TRUE,
      )) . "' width='" . $width . "' height='" . $height . "'/>";
      $form['information']['openlayers_services'][$map
        ->getMachineName()] = array(
        '#type' => 'textarea',
        '#description' => t('Copy paste this html code to embed this map in your content.'),
        '#rows' => 3,
        '#value' => $iframe,
        '#disabled' => FALSE,
      );
    }
  }
}