You are here

function _openlayers_presets_ui_merge_maps in Openlayers 6

Merge maps from form and original preset

Takes data from form and data from original map and merges them together, taking into account any manual changes

Parameters

$submitted_map: Map array from form that has been convertted

$orig_map: Map array form the original map

Return value

Merged map array

1 call to _openlayers_presets_ui_merge_maps()
openlayers_presets_ui_presets_manage_add_submit in modules/openlayers_presets_ui/includes/openlayers_presets_ui.ui.inc
Form submit for preset add form

File

modules/openlayers_presets_ui/includes/openlayers_presets_ui.ui.inc, line 1212
This file holds the functions for the openlayers presets ui

Code

function _openlayers_presets_ui_merge_maps($submitted_map = array(), $orig_map = array()) {
  $merged_map = array();

  // Check map arrays
  if (!is_array($submitted_map) || empty($submitted_map) || !is_array($orig_map) || empty($orig_map)) {
    return is_array($submitted_map) ? $submitted_map : array();
  }

  // Unset values in original map that can be altered by preset form
  unset($orig_map['preset_name']);
  unset($orig_map['preset_title']);
  unset($orig_map['preset_description']);

  // Any layer that is referenced by a string is an exposed / permanent layer and is visible to the UI.
  // We should therefore remove it from our $orig_map display since we will prefer selections from the UI.
  // Any layer that is an array will not have been exposed to the UI and therefore should be kept.
  if ($orig_map['layers']) {
    foreach ($orig_map['layers'] as $key => $layer) {
      if (is_string($layer)) {
        unset($orig_map['layers'][$key]);
      }
    }
  }

  // Merge maps.  The passed in submitted map has not had empty values removed.
  // This ensures that there is a subtractive merge
  $merged_map = openlayers_merge_maps($orig_map, $submitted_map);
  $merged_map = _openlayers_presets_ui_unset_empty_values($merged_map);
  return $merged_map;
}