/** * The Content * Output Map placeholders in the content area if set to automatically. * * @param string $content HTML content. * @return string HTML content. */ function the_content($content = '') { global $wpgeo, $post, $wpdb; $new_content = ''; if ($wpgeo->show_maps() && !is_feed()) { $wp_geo_options = get_option('wp_geo_options'); $maptype = empty($wp_geo_options['google_map_type']) ? 'G_NORMAL_MAP' : $wp_geo_options['google_map_type']; $mapzoom = $wp_geo_options['default_map_zoom']; $coord = get_wpgeo_post_coord($post->ID); $title = get_wpgeo_title($post->ID); $marker = get_post_meta($post->ID, WPGEO_MARKER_META, true); $settings = WPGeo::get_post_map_settings($post->ID); $mymaptype = $maptype; if (isset($settings['type']) && !empty($settings['type'])) { $mymaptype = $settings['type']; } $mymapzoom = $mapzoom; if (isset($settings['zoom']) && is_numeric($settings['zoom'])) { $mymapzoom = $settings['zoom']; } // Need a map? if ($coord->is_valid_coord()) { $map = new WPGeo_Map($post->ID); // Add point $marker_large = empty($marker) ? 'large' : $marker; $icon = apply_filters('wpgeo_marker_icon', $marker_large, $post, 'post'); $map->add_point($coord, array('icon' => $icon, 'title' => $title, 'link' => get_permalink($post->ID))); $map->setMapZoom($mymapzoom); $map->setMapType($mymaptype); if (!empty($settings['centre'])) { $centre = explode(',', $settings['centre']); if (is_array($centre) && count($centre) == 2) { $map->setMapCentre($centre[0], $centre[1]); } else { $map->setMapCentre($coord->latitude(), $coord->longitude()); } } else { $map->setMapCentre($coord->latitude(), $coord->longitude()); } $map_types = $this->control_type_option_strings($wp_geo_options); foreach ($map_types as $map_type) { $map->addMapType($map_type); } if ($wp_geo_options['show_map_scale'] == 'Y') { $map->showMapScale(true); } if ($wp_geo_options['show_map_overview'] == 'Y') { $map->showMapOverview(true); } if ($wp_geo_options['show_streetview_control'] == 'Y') { $map->show_streetview_control(true); } $map->setMapControl($wp_geo_options['default_map_control']); $wpgeo->maps->add_map($map); $new_content .= $map->get_map_html(array('classes' => array('wp_geo_map'), 'styles' => array('width' => $wp_geo_options['default_map_width'], 'height' => $wp_geo_options['default_map_height']))); $new_content = apply_filters('wpgeo_the_content_map', $new_content); } // Add map to content $show_post_map = apply_filters('wpgeo_show_post_map', $wp_geo_options['show_post_map'], $post->ID); // Show at top/bottom of post if ($show_post_map == 'TOP') { $content = $new_content . $content; } elseif ($show_post_map == 'BOTTOM') { $content = $content . $new_content; } } return $content; }