Ejemplo n.º 1
0
 /**
  * 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;
 }