function openlayers_presets_ui_presets_manage_add_validate in Openlayers 6
OpenLayers Preset Form Validate
Validates a preset form submission.
Parameters
$map_form: Array of values to validate
Return value
Does not return anything. Uses form_set_error() to communicate errors.
File
- modules/
openlayers_presets_ui/ includes/ openlayers_presets_ui.ui.inc, line 551 - This file holds the functions for the openlayers presets ui
Code
function openlayers_presets_ui_presets_manage_add_validate($form, &$form_state) {
$values = $form_state['values'];
$found_error = FALSE;
// Check if ahah submitting
if ($form_state['clicked_button']['#id'] == 'edit-openlayers-projection-ahah') {
return TRUE;
}
// Check for cancel
if ($form_state['clicked_button']['#id'] == 'edit-openlayers-cancel') {
return TRUE;
}
// Check for values. We manually do required fields because, it would otherwise
// mess with the AHAH stuff. Maybe a way around it.
if (empty($values['preset_name'])) {
form_set_error('preset_name', t('Preset Name is required.'));
$found_error = TRUE;
}
if (empty($values['preset_title'])) {
form_set_error('preset_title', t('Preset Title is required.'));
$found_error = TRUE;
}
if (empty($values['preset_description'])) {
form_set_error('preset_description', t('Preset Description is required.'));
$found_error = TRUE;
}
if (empty($values['width'])) {
form_set_error('width', t('Width is required.'));
$found_error = TRUE;
}
if (empty($values['height'])) {
form_set_error('height', t('Height is required.'));
$found_error = TRUE;
}
// Check preset name first
if (!preg_match('!^[a-z0-9_]+$!', $values['preset_name'])) {
form_set_error('preset_name', t('Preset Name must contain only lowercase letters, numbers, and underscores.'));
$found_error = TRUE;
}
// Check if adding and name already exists
$existing = openlayers_get_preset($values['preset_name'], TRUE);
if (!empty($existing) && !$form_state['values']['preset_edit'] && $existing['type'] != OPENLAYERS_STORAGE_DEFAULT) {
form_set_error('preset_name', t('The Preset Name already exists.'));
$found_error = TRUE;
}
// Convert form to map array
$map = _openlayers_presets_ui_convert_form_to_map($form_state['values']);
// Attempt to render map to find any errors
$map = openlayers_render_map($map, FALSE);
// Check if any errors found
if (is_array($map['errors']) && count($map['errors']) > 0) {
foreach ($map['errors'] as $error) {
form_set_error('openlayers', t('OpenLayers Map Rendering Error: !error', array(
'!error' => $error,
)));
$found_error = TRUE;
}
}
// If found error, rebuild form
if ($found_error) {
$form_state['rebuild'] = TRUE;
}
}