function shortcode_wpgeo_title($atts, $content = null) { global $post; // Validate Args $atts = wp_parse_args($atts, array('default_to_post_title' => true)); return get_wpgeo_title($post->ID, $atts['default_to_post_title']); }
/** * Add widget map * * @param array $args Args. * @return string Output. */ function add_widget_map($args = null) { global $wpgeo, $post; $wp_geo_options = get_option('wp_geo_options'); $current_post = $post->ID; $html_js = ''; $markers_js = ''; $polyline_js = ''; $markers_js_3 = ''; $polyline_js_3 = ''; $args = wp_parse_args($args, array('width' => '100%', 'height' => 150, 'maptype' => empty($wp_geo_options['google_map_type']) ? 'G_NORMAL_MAP' : $wp_geo_options['google_map_type'], 'show_polylines' => false, 'zoom' => $wp_geo_options['default_map_zoom'], 'id' => 'widget_map', 'posts' => null)); if (!$args['posts']) { return $html_js; } // Create Map $map = new WPGeo_Map($args['id']); $map->set_size($args['width'], $args['height']); $map->set_map_centre(new WPGeo_Coord(0, 0)); $map->set_map_zoom($args['zoom']); $map->set_map_type($args['maptype']); // If Google API Key... if ($wpgeo->checkGoogleAPIKey()) { // Add points (from posts) to map $count = 0; foreach ($args['posts'] as $geo_post) { $coord = get_wpgeo_post_coord($geo_post->ID); if ($coord->is_valid_coord()) { $count++; if (count($count) == 1) { $map->set_map_centre($coord); } $map->add_point($coord, array('icon' => apply_filters('wpgeo_marker_icon', 'small', $geo_post, 'widget'), 'title' => get_wpgeo_title($geo_post->ID), 'link' => apply_filters('wpgeo_marker_link', get_permalink($geo_post), $geo_post), 'post' => $geo_post)); } } // Only show map widget if there are coords to show if (count($map->points) > 0) { // Add polylines (to connect points) to map if ($args['show_polylines']) { $polyline = new WPGeo_Polyline(array('color' => $wp_geo_options['polyline_colour'])); foreach ($map->points as $point) { $polyline->add_coord($point->get_coord()); } $map->add_polyline($polyline); } $html_js .= $map->get_map_html(array('classes' => array('wp_geo_map'))); } $wpgeo->maps->add_map($map); return $html_js; } }
/** * 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; }
/** * Get WP Geo Map * * @param array $query Query args. * @param array $options Options array. * @return string Output. */ function get_wpgeo_map($query, $options = null) { global $wpgeo, $wpgeo_map_id; $wpgeo_map_id++; $id = 'wpgeo_map_id_' . $wpgeo_map_id; $wp_geo_options = get_option('wp_geo_options'); $defaults = apply_filters('wpgeo_map_default_query_args', array('width' => $wp_geo_options['default_map_width'], 'height' => $wp_geo_options['default_map_height'], 'type' => $wp_geo_options['google_map_type'], 'polylines' => $wp_geo_options['show_polylines'], 'polyline_colour' => $wp_geo_options['polyline_colour'], 'zoom' => $wp_geo_options['default_map_zoom'], 'align' => 'none', 'numberposts' => -1, 'posts_per_page' => -1, 'post_type' => 'post', 'post_status' => 'publish', 'orderby' => 'post_date', 'order' => 'DESC', 'markers' => 'large', 'offset' => 0, 'category' => null, 'include' => null, 'exclude' => null, 'meta_key' => null, 'meta_value' => null, 'post_ids' => '', 'post_mime_type' => null, 'post_parent' => null)); // Validate Args $r = wp_parse_args($query, $defaults); $r['width'] = wpgeo_css_dimension($r['width']); $r['height'] = wpgeo_css_dimension($r['height']); if ($r['posts_per_page'] < $r['numberposts']) { $r['posts_per_page'] = $r['numberposts']; } // Set 'post__in' if 'post_ids' set, but don't overwrite. if (!empty($r['post_ids']) && empty($r['post__in'])) { if (is_array($r['post_ids'])) { $r['post__in'] = $r['post_ids']; } else { $r['post__in'] = explode(',', $r['post_ids']); } } $posts = get_posts($r); // Map $map = new WPGeo_Map('id_' . $wpgeo_map_id); $map->set_size($r['width'], $r['height']); $map->set_map_centre(new WPGeo_Coord($wp_geo_options['default_map_latitude'], $wp_geo_options['default_map_longitude'])); $map->set_map_zoom($r['zoom']); $map->set_map_type($r['type']); // Points if ($posts) { foreach ($posts as $post) { $coord = get_wpgeo_post_coord($post->ID); if ($coord->is_valid_coord()) { $marker = get_post_meta($post->ID, WPGEO_MARKER_META, true); if (empty($marker)) { $marker = $r['markers']; } $map->add_point($coord, array('icon' => apply_filters('wpgeo_marker_icon', $marker, $post, 'template'), 'title' => get_wpgeo_title($post->ID), 'link' => apply_filters('wpgeo_marker_link', get_permalink($post), $post), 'post' => $post)); } } } // Polylines if (count($map->points) > 0) { if ($r['polylines'] == 'Y') { $polyline = new WPGeo_Polyline(array('color' => $r['polyline_colour'])); foreach ($map->points as $point) { $polyline->add_coord($point->get_coord()); } $map->add_polyline($polyline); } } $center_coord = $map->get_map_centre(); $wpgeo->maps->add_map($map); return $map->get_map_html(array('styles' => array('float' => $r['align']))); }
/** * @method WP Geo Title * @description Outputs the post title. * @param $post_id = Post ID (optional) * @param $default_to_post_title = Default to post title if point title empty (optional) */ function wpgeo_title($post_id = null, $default_to_post_title = true) { echo get_wpgeo_title($post_id, $default_to_post_title); }
/** * @method WP Head * @description Outputs HTML and JavaScript to the header. */ function wp_head() { global $wpgeo; $js_map_inits = ''; $js_marker_inits = ''; $this->meta_tags(); // WP Geo Default Settings $wp_geo_options = get_option('wp_geo_options'); $controltypes = array(); if ($wp_geo_options['show_map_type_normal'] == 'Y') { $controltypes[] = 'G_NORMAL_MAP'; } if ($wp_geo_options['show_map_type_satellite'] == 'Y') { $controltypes[] = 'G_SATELLITE_MAP'; } if ($wp_geo_options['show_map_type_hybrid'] == 'Y') { $controltypes[] = 'G_HYBRID_MAP'; } if ($wp_geo_options['show_map_type_physical'] == 'Y') { $controltypes[] = 'G_PHYSICAL_MAP'; } echo ' <script type="text/javascript"> //<![CDATA[ // WP Geo default settings var wpgeo_w = \'' . $wp_geo_options['default_map_width'] . '\'; var wpgeo_h = \'' . $wp_geo_options['default_map_height'] . '\'; var wpgeo_type = \'' . $wp_geo_options['google_map_type'] . '\'; var wpgeo_zoom = ' . $wp_geo_options['default_map_zoom'] . '; var wpgeo_controls = \'' . $wp_geo_options['default_map_control'] . '\'; var wpgeo_controltypes = \'' . implode(",", $controltypes) . '\'; var wpgeo_scale = \'' . $wp_geo_options['show_map_scale'] . '\'; var wpgeo_overview = \'' . $wp_geo_options['show_map_overview'] . '\'; //]]> </script> '; // CSS echo '<link rel="stylesheet" href="' . WPGEO_URL . 'css/wp-geo.css" type="text/css" />'; if ($wpgeo->show_maps() || $wpgeo->widget_is_active()) { global $posts; $this->markers->wp_head(); $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']; // Coords to show on map? $coords = array(); for ($i = 0; $i < count($posts); $i++) { $post = $posts[$i]; $latitude = get_post_meta($post->ID, WPGEO_LATITUDE_META, true); $longitude = get_post_meta($post->ID, WPGEO_LONGITUDE_META, true); $title = get_wpgeo_title($post->ID); $marker = get_post_meta($post->ID, WPGEO_MARKER_META, true); $settings = get_post_meta($post->ID, WPGEO_MAP_SETTINGS_META, true); $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']; } if (is_numeric($latitude) && is_numeric($longitude)) { $push = array('id' => $post->ID, 'latitude' => $latitude, 'longitude' => $longitude, 'title' => $title, 'link' => get_permalink($post->ID), 'post' => $post); array_push($coords, $push); // ----------- Start - Create maps for visible posts and pages ----------- $map = new WPGeo_Map($post->ID); // Create map // Add point $marker_large = empty($marker) ? 'large' : $marker; $icon = apply_filters('wpgeo_marker_icon', $marker_large, $post, 'post'); $map->addPoint($latitude, $longitude, $icon, $title, get_permalink($post->ID)); $map->setMapZoom($mymapzoom); // Set zoom $map->setMapType($mymaptype); // Set map type if (!empty($settings['centre'])) { $centre = explode(',', $settings['centre']); if (is_array($centre) && count($centre) == 2) { $map->setMapCentre($centre[0], $centre[1]); } else { $map->setMapCentre($latitude, $longitude); } } else { $map->setMapCentre($latitude, $longitude); } if ($wp_geo_options['show_map_type_physical'] == 'Y') { $map->addMapType('G_PHYSICAL_MAP'); } // Show PHYSICAL map? if ($wp_geo_options['show_map_type_normal'] == 'Y') { $map->addMapType('G_NORMAL_MAP'); } // Show NORMAL map? if ($wp_geo_options['show_map_type_satellite'] == 'Y') { $map->addMapType('G_SATELLITE_MAP'); } // Show SATELLITE map? if ($wp_geo_options['show_map_type_hybrid'] == 'Y') { $map->addMapType('G_HYBRID_MAP'); } // Show HYBRID map? if ($wp_geo_options['show_map_scale'] == 'Y') { $map->showMapScale(true); } // Show map scale if ($wp_geo_options['show_map_overview'] == 'Y') { $map->showMapOverview(true); } // Show map overview $map->setMapControl($wp_geo_options['default_map_control']); // Set map control array_push($this->maps, $map); // Add map to maps array // ----------- End - Create maps for visible posts and pages ----------- } } // Need a map? if (count($coords) > 0) { // ----------- Start - Create map for visible posts and pages ----------- $map = new WPGeo_Map('visible'); $map->show_polyline = true; // Add points for ($j = 0; $j < count($coords); $j++) { $marker_small = empty($marker) ? 'small' : $marker; $icon = apply_filters('wpgeo_marker_icon', $marker_small, $coords[$j]['post'], 'multiple'); $map->addPoint($coords[$j]['latitude'], $coords[$j]['longitude'], $icon, $coords[$j]['title'], $coords[$j]['link']); } $map->setMapZoom($mapzoom); // Set zoom $map->setMapType($maptype); // Set map type if ($wp_geo_options['show_map_type_physical'] == 'Y') { // Show PHYSICAL map? $map->addMapType('G_PHYSICAL_MAP'); } if ($wp_geo_options['show_map_type_normal'] == 'Y') { // Show NORMAL map? $map->addMapType('G_NORMAL_MAP'); } if ($wp_geo_options['show_map_type_satellite'] == 'Y') { // Show SATELLITE map? $map->addMapType('G_SATELLITE_MAP'); } if ($wp_geo_options['show_map_type_hybrid'] == 'Y') { // Show HYBRID map? $map->addMapType('G_HYBRID_MAP'); } if ($wp_geo_options['show_map_scale'] == 'Y') { $map->showMapScale(true); } // Show map scale if ($wp_geo_options['show_map_overview'] == 'Y') { $map->showMapOverview(true); } // Show map overview $map->setMapControl($wp_geo_options['default_map_control']); // Set map control array_push($this->maps, $map); // Add map to maps array // ----------- End - Create map for visible posts and pages ----------- $google_maps_api_key = $wpgeo->get_google_api_key(); $zoom = $wp_geo_options['default_map_zoom']; // Loop through maps to get Javascript $js_map_writes = ''; foreach ($this->maps as $map) { $js_map_writes .= $map->renderMapJS(); } // Script $wpgeo->includeGoogleMapsJavaScriptAPI(); $html_content = ' <script type="text/javascript"> //<![CDATA[ var map = null; ' . $js_map_inits . ' var marker = null; ' . $js_marker_inits . ' function init_wp_geo_map() { if (GBrowserIsCompatible()) { ' . $js_map_writes . ' } } if (document.all&&window.attachEvent) { // IE-Win window.attachEvent("onload", function () { init_wp_geo_map(); }); window.attachEvent("onunload", GUnload); } else if (window.addEventListener) { // Others window.addEventListener("load", function () { init_wp_geo_map(); }, false); window.addEventListener("unload", GUnload, false); } //]]> </script>'; echo $html_content; } // Check if plugin head needed // Check for Google API key // Write Javascripts and CSS } }