Function Reference: geodir_custom_gmaps_update_style

Summary

This function has not been documented yet.

Source File

geodir_custom_gmaps_update_style() is located in geodir_custom_google_maps/geodir_custom_gmaps_functions.php [Line: 171]

Source Code

function geodir_custom_gmaps_update_style() {

	$msg = __('Map style not saved, please try again!', GEODIRCUSTOMGMAPS_TEXTDOMAIN);
	if (current_user_can('manage_options') && isset($_POST['custom_gmaps_update_nonce'])) {
		$gd_map = isset($_POST['gd_map']) ? trim($_POST['gd_map']) : '';
		$gd_gmap_style = isset($_POST['gd_gmap_style']) ? $_POST['gd_gmap_style'] : '';
		
		if (empty($gd_gmap_style)) {
			$msg = __('Map style not saved, please add atleast one style!', GEODIRCUSTOMGMAPS_TEXTDOMAIN);
			//wp_redirect(admin_url().'admin.php?page=geodirectory&tab=custom_gmaps_manager&subtab=geodir_custom_gmaps_manage_styles&gd_map='.$gd_map);
			//exit;
		}
		if (wp_verify_nonce($_POST['custom_gmaps_update_nonce'], 'custom_gmaps_update')) {

			$save_params = array();
			
			foreach ($gd_gmap_style as $index => $row) {
				$featureType = isset($row['featureType']) && $row['featureType'] != '' ? $row['featureType'] : '';
				$elementType = isset($row['elementType']) && $row['elementType'] != '' ? $row['elementType'] : '';
				$stylers = isset($row['stylers']) && !empty($row['stylers']) != '' ? $row['stylers'] : '';
				
				$parse_stylers = array();
				foreach ($stylers as $styler => $value) {
					if ($value!='' && strlen($value) > 0) {
						$parse_stylers[][$styler] = $value;
					}
				}
				if ($featureType != '' && !empty($parse_stylers)) {
					$save_param = array();
					$save_param['featureType'] = $featureType;
					if ($elementType!='') {
						$save_param['elementType'] = $elementType;
					}
					$save_param['stylers'] = $parse_stylers;
					$save_params[] = $save_param;
				}
			}
			
			if (empty($save_params)) {
				$msg = __('Map style not saved, please choose atleast one styler!', GEODIRCUSTOMGMAPS_TEXTDOMAIN);
				//return $msg;
			}

			$return = false;
			switch($gd_map) {
				case 'home': {
					$option_value = get_option('geodir_custom_gmaps_style_home');
					// hook
					$save_params = apply_filters('geodir_custom_gmaps_save_style_home', $save_params);
					update_option('geodir_custom_gmaps_style_home', $save_params);
					$return = true;
				}
				break;
				case 'listing': {
					$option_value = get_option('geodir_custom_gmaps_style_listing');
					// hook
					$save_params = apply_filters('geodir_custom_gmaps_save_style_listing', $save_params);
					update_option('geodir_custom_gmaps_style_listing', $save_params);
					$return = true;
				}
				break;
				case 'detail': {
					$option_value = get_option('geodir_custom_gmaps_style_detail');
					// hook
					$save_params = apply_filters('geodir_custom_gmaps_save_style_detail', $save_params);
					update_option('geodir_custom_gmaps_style_detail', $save_params);
					$return = true;
				}
				break;
			}

			if ($return) {
				$msg = __('Map style saved.', GEODIRCUSTOMGMAPS_TEXTDOMAIN);
			}
		}
	}
	return $msg;
}