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