Changeset 647542
- Timestamp:
- 01/03/2013 06:06:22 PM (13 years ago)
- Location:
- fi-geolocation/trunk
- Files:
-
- 1 added
- 4 edited
-
css/style.css (modified) (1 diff)
-
fi-geolocation.php (modified) (17 diffs)
-
js/archive-map.js (added)
-
js/settings.js (modified) (1 diff)
-
readme.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
fi-geolocation/trunk/css/style.css
r639417 r647542 12 12 text-align: right; 13 13 padding-right: 10px; 14 width: 200px; 14 15 } 16 17 .wrap.fi-geolocation td.map_wrapper { 18 width: 600px; 19 } 20 21 .wrap.fi-geolocation h3 { 22 border-top: solid 2px #A0A0A0; 23 font-size: 1.6em; 24 line-height: 1.6em; 25 } -
fi-geolocation/trunk/fi-geolocation.php
r644470 r647542 4 4 Plugin URI: http://franceimage.com/ 5 5 Description: Attach geolocation data to post 6 Version: 1. 0.56 Version: 1.1.0 7 7 Author: FranceImage 8 8 Author URI: http://franceimage.com/ … … 35 35 wp_register_script('fi-geolocation-form', plugins_url(plugin_basename(dirname(__FILE__))) . '/js/geolocation-form.js', array('jquery', 'googlemap'), false, true); 36 36 wp_register_script('fi-geolocation-showme-where', plugins_url(plugin_basename(dirname(__FILE__))) . '/js/showme-where.js', array('jquery', 'googlemap'), false, true); 37 wp_register_script('fi-geolocation-archive-map', plugins_url(plugin_basename(dirname(__FILE__))) . '/js/archive-map.js', array('jquery', 'googlemap'), false, true); 37 38 wp_register_style('fi-geolocation-style', plugins_url(plugin_basename(dirname(__FILE__))) . '/css/style.css'); 38 39 } … … 47 48 class Fi_options { 48 49 var $values = array( 50 'config_version' => 1, 51 52 /* posttypes we support */ 53 'posttypes' => 'post,page', 54 49 55 /* allow detection of author position */ 50 56 'use_location_sensor' => 'no', … … 71 77 'default_showme_zoom' => 'default', // 'default', 'metadata' 72 78 'default_popup_position' => 'right', // 'below', 'above', 'left', 'right' (position of the map popped up when hovering or clicking the showme_where link) 79 80 /* default behaviour for archive maps */ 81 'archive_map_lat' => 34.3, 82 'archive_map_lng' => -38, 83 'archive_map_zoom' => 1, 84 'archive_map_width' => '100%', 85 'archive_map_height' => '300px', 86 'markers_limit' => 50, 87 'archive_home' => 'yes', 88 'archive_author' => 'yes', 89 'archive_taxonomy' => 'yes', 90 'include_taxonomies' => '', 91 'exclude_taxonomies' => '', 92 'include_authors' => '', 93 'exclude_authors' => '', 73 94 ); 95 74 96 75 97 function __construct() { … … 85 107 } 86 108 109 110 public function __set($name, $value) { 111 } 112 113 114 public function __get($name) { 115 return $this->values[$name]; 116 } 117 118 87 119 function register_settings() { 88 120 foreach($this->values AS $key => $value) { … … 91 123 } 92 124 125 93 126 function settings_fields() { 94 127 settings_fields('fi-geolocation-settings'); 95 128 } 129 96 130 97 131 function render_radio($name, $options) { … … 104 138 echo $text; 105 139 endforeach; 106 107 } 108 109 function render_fields() { 110 $use_location_sensor_options = array( 111 'yes' => __('Yes', 'fi-geolocation'), 112 'no' => __('No', 'fi-geolocation') 113 ); 114 140 } 141 142 143 function render_single_post_options() { 115 144 $default_showme_position = array( 116 145 'before_content' => __('Before content', 'fi-geolocation'), … … 139 168 140 169 <tr> 141 <th><label for='fi_use_location_sensor'><?php _e('Enable location sensor', 'fi-geolocation'); ?></label></th>142 <td>143 <?php $this->render_radio('fi_use_location_sensor', $use_location_sensor_options); ?>144 </td>145 </tr>146 <tr><td></td><td><em><?php _e('If set to yes, you will be able to use your current location as the post location', 'fi-geolocation'); ?></em></td></tr>147 148 149 <tr>150 170 <th><label for='fi_default_map_width'><?php _e('Default map width', 'fi-geolocation'); ?></label></th> 151 171 <td> … … 211 231 <tr> 212 232 <th><label for='fi_default_map'><?php _e('Default map', 'fi-geolocation'); ?></label></th> 213 <td >233 <td class='map_wrapper'> 214 234 <input id="fi_default_map_lat" name="fi_default_map_lat" type="hidden" value="<?php echo esc_attr(get_option('fi_default_map_lat')); ?>" /> 215 235 <input id="fi_default_map_lng" name="fi_default_map_lng" type="hidden" value="<?php echo esc_attr(get_option('fi_default_map_lng')); ?>" /> … … 223 243 } 224 244 225 public function __set($name, $value) { 226 } 227 228 public function __get($name) { 229 return $this->values[$name]; 230 } 245 246 function render_archives_options() { 247 $yes_no_options = array( 248 'yes' => __('Yes', 'fi-geolocation'), 249 'no' => __('No', 'fi-geolocation') 250 ); 251 252 ?> 253 <tr> 254 <th><label for='fi_archive_map_width'><?php _e('Default map width', 'fi-geolocation'); ?></label></th> 255 <td> 256 <input id="fi_archive_map_width" name="fi_archive_map_width" type="text" value="<?php echo esc_attr(get_option('fi_archive_map_width')); ?>" /> 257 </td> 258 </tr> 259 <tr><td></td><td><em><?php _e('Examples: 250px, 100%', 'fi-geolocation'); ?></em></td></tr> 260 261 262 <tr> 263 <th><label for='fi_archive_map_height'><?php _e('Default map heigth', 'fi-geolocation'); ?></label></th> 264 <td> 265 <input id="fi_archive_map_height" name="fi_archive_map_height" type="text" value="<?php echo esc_attr(get_option('fi_archive_map_height')); ?>" /> 266 </td> 267 </tr> 268 <tr><td></td><td><em><?php _e('Examples: 250px, 100%', 'fi-geolocation'); ?></em></td></tr> 269 270 <tr> 271 <th><label for='fi_archive_map'><?php _e('Default map', 'fi-geolocation'); ?></label></th> 272 <td class='map_wrapper'> 273 <input id="fi_archive_map_lat" name="fi_archive_map_lat" type="hidden" value="<?php echo esc_attr(get_option('fi_archive_map_lat')); ?>" /> 274 <input id="fi_archive_map_lng" name="fi_archive_map_lng" type="hidden" value="<?php echo esc_attr(get_option('fi_archive_map_lng')); ?>" /> 275 <input id="fi_archive_map_zoom" name="fi_archive_map_zoom" type="hidden" value="<?php echo esc_attr(get_option('fi_archive_map_zoom')); ?>" /> 276 <div id="fi_archive_map"></div> 277 </td> 278 </tr> 279 <tr><td></td><td><em><?php _e('The zoom level of this map will be used to display maps in your posts', 'fi-geolocation'); ?></em></td></tr> 280 281 282 <tr> 283 <th><label for='fi_markers_limit'><?php _e('Markers limit', 'fi-geolocation'); ?></label></th> 284 <td> 285 <input id="fi_markers_limit" name="fi_markers_limit" type="text" value="<?php echo esc_attr(get_option('fi_markers_limit')); ?>" /> 286 </td> 287 </tr> 288 <tr><td></td><td><em><?php _e('Maximum number of markers displayed on the map', 'fi-geolocation'); ?></em></td></tr> 289 290 291 <tr> 292 <th><label for='fi_archive_home'><?php _e('Show on blog home', 'fi-geolocation'); ?></label></th> 293 <td> 294 <?php $this->render_radio('fi_archive_home', $yes_no_options); ?> 295 </td> 296 </tr> 297 298 299 <tr> 300 <th><label for='fi_archive_author'><?php _e('Show on author archives', 'fi-geolocation'); ?></label></th> 301 <td> 302 <?php $this->render_radio('fi_archive_author', $yes_no_options); ?> 303 </td> 304 </tr> 305 306 <!-- 307 <tr> 308 <th><label for='fi_include_authors'><?php _e('Include authors', 'fi-geolocation'); ?></label></th> 309 <td> 310 <input id="fi_include_authors" name="fi_include_authors" type="text" size=100 value="<?php echo esc_attr(get_option('fi_include_authors')); ?>" /> 311 </td> 312 </tr> 313 <tr><td></td><td><em><?php _e('Comma separated list of identifiers. If not empty, a map will be shown only for these authors', 'fi-geolocation'); ?></em></td></tr> 314 315 316 <tr> 317 <th><label for='fi_exclude_authors'><?php _e('Exclude authors', 'fi-geolocation'); ?></label></th> 318 <td> 319 <input id="fi_exclude_authors" name="fi_exclude_authors" type="text" size=100 value="<?php echo esc_attr(get_option('fi_exclude_authors')); ?>" /> 320 </td> 321 </tr> 322 <tr><td></td><td><em><?php _e('Comma separated list of identifiers. If not empty, a map will be shown for all authors except these', 'fi-geolocation'); ?></em></td></tr> 323 --> 324 325 <tr> 326 <th><label for='fi_archive_taxonomy'><?php _e('Show on taxonomy archives', 'fi-geolocation'); ?></label></th> 327 <td> 328 <?php $this->render_radio('fi_archive_taxonomy', $yes_no_options); ?> 329 </td> 330 </tr> 331 <tr><td></td><td><em><?php _e('Categories, tags and custom taxonomies', 'fi-geolocation'); ?></em></td></tr> 332 333 <!-- 334 <tr> 335 <th><label for='fi_include_taxonomies'><?php _e('Include taxonomies', 'fi-geolocation'); ?></label></th> 336 <td> 337 <input id="fi_include_taxonomies" name="fi_include_taxonomies" type="text" size=100 value="<?php echo esc_attr(get_option('fi_include_taxonomies')); ?>" /> 338 </td> 339 </tr> 340 <tr><td></td><td><em><?php _e('Comma separated list of identifiers. If not empty, a map will be shown only for these taxonomies', 'fi-geolocation'); ?></em></td></tr> 341 342 343 <tr> 344 <th><label for='fi_exclude_taxonomies'><?php _e('Exclude taxonomies', 'fi-geolocation'); ?></label></th> 345 <td> 346 <input id="fi_exclude_taxonomies" name="fi_exclude_taxonomies" type="text" size=100 value="<?php echo esc_attr(get_option('fi_exclude_taxonomies')); ?>" /> 347 </td> 348 </tr> 349 <tr><td></td><td><em><?php _e('Comma separated list of identifiers. If not empty, a map will be shown for all taxonomies except these', 'fi-geolocation'); ?></em></td></tr> 350 --> 351 352 <?php 353 } 354 355 356 function render_general_options() { 357 $use_location_sensor_options = array( 358 'yes' => __('Yes', 'fi-geolocation'), 359 'no' => __('No', 'fi-geolocation') 360 ); 361 362 363 ?> 364 <tr> 365 <th><label for='fi_use_location_sensor'><?php _e('Enable location sensor', 'fi-geolocation'); ?></label></th> 366 <td> 367 <?php $this->render_radio('fi_use_location_sensor', $use_location_sensor_options); ?> 368 </td> 369 </tr> 370 <tr><td></td><td><em><?php _e('If set to yes, you will be able to use your current location as the post location', 'fi-geolocation'); ?></em></td></tr> 371 372 <tr> 373 <th><label for='fi_posttypes'><?php _e('Post types', 'fi-geolocation'); ?></label></th> 374 <td> 375 <input id="fi_posttypes" name="fi_posttypes" type="text" size=100 value="<?php echo esc_attr(get_option('fi_posttypes')); ?>" /> 376 </td> 377 </tr> 378 <tr><td></td><td><em><?php _e('Post types eligible for geolocation (comma separated)', 'fi-geolocation'); ?></em></td></tr> 379 380 381 <?php 382 } 383 384 385 function render_advanced_options() { 386 ?> 387 388 <tr> 389 <th><label for='fi_postmeta_lat'><?php _e('latitude meta', 'fi-geolocation'); ?></label></th> 390 <td> 391 <input id="fi_postmeta_lat" name="fi_postmeta_lat" type="text" value="<?php echo esc_attr(get_option('fi_postmeta_lat')); ?>" /> 392 </td> 393 </tr> 394 <tr><td></td><td><em><?php _e('Name of latitude metadata', 'fi-geolocation'); ?></em></td></tr> 395 396 <tr> 397 <th><label for='fi_postmeta_lng'><?php _e('longitude meta', 'fi-geolocation'); ?></label></th> 398 <td> 399 <input id="fi_postmeta_lng" name="fi_postmeta_lng" type="text" value="<?php echo esc_attr(get_option('fi_postmeta_lng')); ?>" /> 400 </td> 401 </tr> 402 <tr><td></td><td><em><?php _e('Name of longitude metadata', 'fi-geolocation'); ?></em></td></tr> 403 404 <tr> 405 <th><label for='fi_postmeta_zoom'><?php _e('zoom meta', 'fi-geolocation'); ?></label></th> 406 <td> 407 <input id="fi_postmeta_zoom" name="fi_postmeta_zoom" type="text" value="<?php echo esc_attr(get_option('fi_postmeta_zoom')); ?>" /> 408 </td> 409 </tr> 410 <tr><td></td><td><em><?php _e('Name of zoom metadata', 'fi-geolocation'); ?></em></td></tr> 411 412 <tr> 413 <th><label for='fi_postmeta_name'><?php _e('address meta', 'fi-geolocation'); ?></label></th> 414 <td> 415 <input id="fi_postmeta_name" name="fi_postmeta_name" type="text" value="<?php echo esc_attr(get_option('fi_postmeta_name')); ?>" /> 416 </td> 417 </tr> 418 <tr><td></td><td><em><?php _e('Name of address metadata', 'fi-geolocation'); ?></em></td></tr> 419 420 421 <?php 422 } 423 424 231 425 } 232 426 … … 255 449 function admin_menu() { 256 450 if(function_exists('add_meta_box')) { 257 add_meta_box('fi-geolocation-meta', __('Geolocation', 'fi-geolocation'), array(&$this, 'display_geolocation_form'), 'post', 'advanced'); 258 add_meta_box('fi-geolocation-meta', __('Geolocation', 'fi-geolocation'), array(&$this, 'display_geolocation_form'), 'page', 'advanced'); 259 260 // Support for custom post types 261 if ( function_exists( 'get_post_types' ) && function_exists( 'post_type_supports' ) ) { 262 $post_types = get_post_types(); 263 foreach ( $post_types as $post_type ) { 264 $post_type_object = get_post_type_object( $post_type ); 265 if ( post_type_supports( $post_type, 'geolocation' ) ) { 266 add_meta_box('fi-geolocation-meta', __('Geolocation', 'fi-geolocation'), array(&$this, 'display_geolocation_form'), $post_type, 'advanced'); 267 } 268 } 451 $supported = explode(',', $this->options->posttypes); 452 foreach ($supported AS $posttype) { 453 add_meta_box('fi-geolocation-meta', __('Geolocation', 'fi-geolocation'), array(&$this, 'display_geolocation_form'), $posttype, 'advanced'); 269 454 } 270 455 } … … 386 571 <form action="options.php" method="post"> 387 572 <?php $this->options->settings_fields(); ?> 388 389 <table> 390 391 <?php $this->options->render_fields(); ?> 392 573 574 <h3><?php _e('Single posts', 'fi-geolocation'); ?></h3> 575 <table> 576 <?php $this->options->render_single_post_options(); ?> 393 577 <tr> 394 578 <td colspan="2"> … … 396 580 </td> 397 581 </tr> 582 </table> 583 584 <h3><?php _e('Archives', 'fi-geolocation'); ?></h3> 585 <table> 586 <?php $this->options->render_archives_options(); ?> 587 <tr> 588 <td colspan="2"> 589 <input type="submit" name="Submit" value="<?php _e('Save changes', 'fi-geolocation'); ?>" class="button-primary"/> 590 </td> 591 </tr> 398 592 </table> 399 593 594 <h3><?php _e('General settings', 'fi-geolocation'); ?></h3> 595 <table> 596 <?php $this->options->render_general_options(); ?> 597 <tr> 598 <td colspan="2"> 599 <input type="submit" name="Submit" value="<?php _e('Save changes', 'fi-geolocation'); ?>" class="button-primary"/> 600 </td> 601 </tr> 602 </table> 603 604 <h3><?php _e('Advanced settings', 'fi-geolocation'); ?></h3> 605 <table> 606 <?php $this->options->render_advanced_options(); ?> 607 <tr> 608 <td colspan="2"> 609 <input type="submit" name="Submit" value="<?php _e('Save changes', 'fi-geolocation'); ?>" class="button-primary"/> 610 </td> 611 </tr> 612 </table> 613 400 614 </form> 401 615 </div> … … 414 628 var $has_showme_where = false; 415 629 var $has_shortcode = 0; 630 var $has_archive_map = false; 416 631 417 632 function init() { … … 419 634 add_shortcode('geolocation', array(&$this,'geolocation_shortcode')); 420 635 add_action('wp_footer', array(&$this, 'showme_config')); 636 add_action('loop_start', array(&$this, 'automatic_archive_map')); 421 637 add_filter('the_content', array(&$this, 'automatic_showme_where'), 99); // priority is low (we want shortcodes to be handled first) 422 638 add_filter('em_events_output', array(&$this, 'em_events_output'), 10, 3); 423 639 } 424 640 641 642 function automatic_archive_map() { 643 if((is_category() || is_tag() || is_tax()) && $this->options->archive_taxonomy == 'yes' 644 || is_author() && $this->options->archive_author == 'yes' 645 || is_home() && $this->options->archive_home == 'yes') { 646 647 if(!$this->has_archive_map) { 648 echo $this->get_archive_map(); 649 } 650 } 651 } 652 653 654 function get_archive_map() { 655 $this->has_archive_map = true; 656 return '<div class="fi-archive-map" style="margin:auto;margin-bottom:20px;width:'.$this->options->archive_map_width.';height:'.$this->options->archive_map_height.'" coords="'.$this->options->archive_map_lat.','.$this->options->archive_map_lng.','.$this->options->archive_map_zoom.'"></div>'; 657 } 425 658 426 659 /** … … 464 697 465 698 466 if ($lat != '' && $lng != '' && $zoom != '' && !is_feed() ) {699 if ($lat != '' && $lng != '' && $zoom != '' && !is_feed() && in_array(get_post_type($post), explode(',', $this->options->posttypes))) { 467 700 if($this->options->default_showme_trigger == 'link_hover' || $this->options->default_showme_trigger == 'link_click') { 468 701 $ret = '<p><a class="fi-showme-where-link" id="fi-showme-where-' . $post->ID .'" coords="'.$lat.','.$lng.','.$zoom.'" href="#fi-showme-where-popup">'.$title.'</a></p>'; … … 490 723 var fi_showme_trigger=\'' . $this->options->default_showme_trigger . '\'; 491 724 var fi_showme_zoom=\'' . $this->options->default_showme_zoom . '\'; 725 var fi_site_url=\'' . site_url('/') . '\'; 492 726 </script> 493 727 '; 494 728 } 729 730 if($this->has_archive_map) { 731 wp_enqueue_script('fi-geolocation-archive-map'); 732 wp_enqueue_style( 'fi-geolocation-style'); 733 // TODO: 734 // - enqueue a (dummy) script to get archive locations 735 // - when script is loaded, get data from transient var 736 echo ' 737 <script type="text/javascript"> 738 var fi_locations_in_archive=' . $this->get_locations_in_archive() . '; 739 </script> 740 '; 741 } 742 } 743 744 745 function get_locations_in_archive() { 746 // http://codex.wordpress.org/Class_Reference/wpdb 747 global $wpdb, $wp_query; 748 $queried_object = $wp_query->get_queried_object(); 749 750 $and_join = ''; 751 $and_where = ''; 752 753 if(is_home()) { 754 $and_where .= ' AND p.post_type=\'post\''; 755 } 756 757 if(is_author()) { 758 $and_where .= ' AND p.post_author=' . $queried_object->ID; 759 } 760 761 // TODO: find a more generic way for any taxonomy 762 if(is_category() || is_tag() || is_tax()) { 763 $and_join .= 'JOIN '.$wpdb->prefix.'term_relationships tr ON tr.object_id = t1.post_id'; 764 $and_where .= ' AND tr.term_taxonomy_id=' . $queried_object->term_id; 765 } 766 767 768 $query_places = "SELECT t1.meta_value AS lat, t2.meta_value AS lng, t1.post_id AS id, p.post_title AS title 769 FROM " . $wpdb->prefix . "postmeta t1 770 INNER JOIN " . $wpdb->prefix . "postmeta t2 ON t1.post_id = t2.post_id 771 INNER JOIN " . $wpdb->prefix . "posts p ON p.ID = t1.post_id 772 ".$and_join." 773 WHERE p.post_status='publish'" . $and_where . " 774 AND t1.meta_key = '".$this->options->postmeta_lat."' 775 AND t2.meta_key = '".$this->options->postmeta_lng."' 776 ORDER BY p.ID DESC 777 LIMIT ".$this->options->markers_limit.";"; 778 $results = $wpdb->get_results($query_places); 779 $json_places = 'false'; 780 if($results) { 781 $json_places = json_encode($results); 782 } 783 return $json_places; 495 784 } 496 785 -
fi-geolocation/trunk/js/settings.js
r639417 r647542 56 56 } 57 57 }); 58 59 60 // Duplicate code for archive map settings 61 $j(function(){ 62 63 var width = $j('#fi_archive_map_width').val(); 64 var height = $j('#fi_archive_map_height').val(); 65 66 var lat = $j('#fi_archive_map_lat').val(); 67 var lng = $j('#fi_archive_map_lng').val(); 68 var zoom = parseInt($j('#fi_archive_map_zoom').val()); 69 70 $j('#fi_archivet_map').css('width', width); 71 $j('#fi_archive_map').css('height', height); 72 73 var myOptions = { 74 zoom: zoom, 75 center: new google.maps.LatLng(lat, lng), 76 scrollwheel: false, 77 mapTypeControl: false, 78 streetViewControl: false, 79 disableDoubleClickZoom: true, 80 mapTypeId: google.maps.MapTypeId.ROADMAP 81 }; 82 83 var map = new google.maps.Map($j('#fi_archive_map').get(0), myOptions); 84 // draw center of map 85 new Center({map: map }); 86 87 var is_dragging = 0; 88 var is_initializing = 1; 89 90 google.maps.event.addListener(map, 'bounds_changed', bounds_changed); 91 google.maps.event.addListener(map, 'dragstart', drag_start); 92 google.maps.event.addListener(map, 'dragend', drag_end); 93 94 function drag_start() { 95 is_dragging = 1; 96 } 97 98 function drag_end() { 99 is_dragging = 0; 100 bounds_changed.call(map); 101 } 102 103 function bounds_changed() { 104 if(is_initializing == 1) { 105 is_initializing = 0; 106 return; 107 } 108 109 if(is_dragging == 0) { 110 $j('#fi_archive_map_lat').val(map.getCenter().lat()); 111 $j('#fi_archive_map_lng').val(map.getCenter().lng()); 112 $j('#fi_archive_map_zoom').val(map.getZoom()); 113 } 114 115 } 116 }); 117 -
fi-geolocation/trunk/readme.txt
r644471 r647542 5 5 Requires at least: 3.0.0 6 6 Tested up to: 3.5.0 7 Stable tag: 1. 0.57 Stable tag: 1.1.0 8 8 9 A llows to attach geographic data to your content and displays this dataon a map for your site/blog visitors.9 Attach geographic data to your content and display it on a map for your site/blog visitors. 10 10 11 11 … … 16 16 * Experimenting future features is happening [here](http://franceimage.com/net/places-to-visit-in-france/). 17 17 18 The initial release attempts to be a 'better' [Geolocation](http://wordpress.org/extend/plugins/geolocation/) plugin. 18 = New feature = 19 20 * Insert maps showing geolocated posts on blog home, author page, tag, category and event custom taxonomy pages. 21 22 = A better Geolocation plugin = 19 23 20 24 * Configure the text of the link showing the map. … … 36 40 37 41 == Changelog == 42 43 = 1.1.0 = 44 * Automatic insertion of archive maps (list of geolocated posts) 38 45 39 46 = 1.0.5 =
Note: See TracChangeset
for help on using the changeset viewer.