function colorized_gmap_form_alter in Colorized google maps block 7
Implements hook_form_alter().
File
- ./
colorized_gmap.module, line 308 - Colorized gmap module.
Code
function colorized_gmap_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'colorized_gmap_page_form' || $form_id == 'block_admin_configure' && $form['module']['#value'] == 'colorized_gmap') {
module_load_include('inc', 'colorized_gmap', 'colorized_gmap.admin');
$map_entity = NULL;
if (!empty($form['delta']['#value'])) {
$map_entity = entity_load_single('colorized_gmap', $form['delta']['#value']);
$form['settings']['title']['#default_value'] = $map_entity->block_settings['title'];
}
// Machine name.
$form['settings']['machine-name'] = array(
'#type' => 'machine_name',
'#title' => t("Machine Name"),
'#required' => TRUE,
'#description' => t("Machine-friendly name."),
'#size' => 15,
// @todo: I set default value here to not to break ajax.
'#default_value' => isset($map_entity) ? $map_entity->name : 'colorized_gmap_' . time(),
'#disabled' => isset($map_entity->name) ? TRUE : FALSE,
'#machine_name' => array(
'exists' => '_colorized_gmap_block_name_exists',
),
);
// Options for map controls positions (comes from GMAP api v3 reference).
$position = array(
'1' => 'Top Left',
'2' => 'Top Center',
'3' => 'Top Right',
'4' => 'Left Center',
'5' => 'Left Top',
'6' => 'Left Bottom',
'7' => 'Right Top',
'8' => 'Right Center',
'9' => 'Right Bottom',
'10' => 'Bottom Left',
'11' => 'Bottom Center',
'12' => 'Bottom Right',
);
// Some helper function to create form elements.
// Just to make code more user friendly.
_colorized_gmap_form_map_stylers($form, $form_state, $map_entity);
_colorized_gmap_form_map_coordinates($form, $form_state, $map_entity);
_colorized_gmap_form_map_controls($form, $form_state, $map_entity);
_colorized_gmap_form_map_controls_position($form, $form_state, $position, $map_entity);
_colorized_gmap_form_map_marker($form, $form_state, $map_entity);
_colorized_gmap_form_zoom_settings($form, $form_state, $position, $map_entity);
// Update map styles js setting on AJAX.
if ($form_state['rebuild'] && isset($form_state['values']['settings'])) {
foreach ($form_state['styles_removed'] as $item) {
$form_state['values']['settings'][$item] = array();
}
if ($form_state['values']['delta']) {
$marker = _colorized_gmap_marker_info($form_state['values']['colorized_map_addtional_settings']['marker_settings']['marker'], $form_state['values']['delta']);
$form_state['values']['colorized_map_addtional_settings']['marker_settings']['marker'] = $marker;
}
colorized_gmap_admin_js_settings_export($form_state['values']);
}
// Pre-populate default map style values.
if ($map_entity && !$form_state['rebuild']) {
// If marker was uploaded - update its info.
$marker = $map_entity->additional_settings['marker_settings']['marker'];
if (!is_array($marker) && !empty($marker)) {
$marker = _colorized_gmap_marker_info($marker, $map_entity->id);
$map_entity->additional_settings['marker_settings']['marker'] = $marker;
}
$settings = array(
'settings' => $map_entity->style,
'colorized_map_addtional_settings' => $map_entity->additional_settings,
'latitude' => $map_entity->latitude,
'longitude' => $map_entity->longitude,
);
colorized_gmap_admin_js_settings_export($settings);
}
$form['#validate'][] = 'colorized_gmap_page_form_validate';
}
}