[24677] | 1 | <?php |
---|
| 2 | /* |
---|
| 3 | Plugin Name: OpenStreetMap |
---|
| 4 | Version: 0.6 |
---|
| 5 | Description: OpenStreetMap integration for piwigo |
---|
| 6 | Plugin URI: http://piwigo.org/ext/extension_view.php?eid=701 |
---|
| 7 | Author: xbmgsharp |
---|
| 8 | Author URI: https://github.com/xbgmsharp/piwigo-openstreetmap |
---|
| 9 | */ |
---|
| 10 | |
---|
| 11 | // Chech whether we are indeed included by Piwigo. |
---|
| 12 | if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); |
---|
| 13 | |
---|
| 14 | // Define the path to our plugin. |
---|
| 15 | define('OSM_PATH', PHPWG_PLUGINS_PATH . basename(dirname(__FILE__)).'/'); |
---|
| 16 | |
---|
| 17 | global $conf; |
---|
| 18 | |
---|
| 19 | // Prepare configuration |
---|
| 20 | $conf['osm_conf'] = unserialize($conf['osm_conf']); |
---|
| 21 | |
---|
| 22 | // Plugin on picture page |
---|
| 23 | if (script_basename() == 'picture') |
---|
| 24 | { |
---|
| 25 | include_once(dirname(__FILE__).'/picture.inc.php'); |
---|
| 26 | } |
---|
| 27 | |
---|
| 28 | // Do we have to show a link on the left menu |
---|
| 29 | if ($conf['osm_conf']['left_menu']['enabled']) |
---|
| 30 | { |
---|
| 31 | // Hook to add link on the left menu |
---|
| 32 | add_event_handler('blockmanager_apply', 'osm_blockmanager_apply'); |
---|
| 33 | } |
---|
| 34 | |
---|
| 35 | // Hook to sync geotag metadata on updload |
---|
| 36 | if ($conf['osm_conf']['auto_sync']) |
---|
| 37 | { |
---|
| 38 | $conf['use_exif_mapping']['lat'] = 'lat'; |
---|
| 39 | $conf['use_exif_mapping']['lon'] = 'lon'; |
---|
| 40 | add_event_handler('format_exif_data', 'osm_format_exif_data', EVENT_HANDLER_PRIORITY_NEUTRAL, 3); |
---|
| 41 | } |
---|
| 42 | |
---|
| 43 | // If admin do the init |
---|
| 44 | if (defined('IN_ADMIN')) { |
---|
| 45 | include_once(OSM_PATH.'/admin/admin_boot.php'); |
---|
| 46 | } |
---|
| 47 | |
---|
| 48 | function osm_format_exif_data($exif, $file, $map) |
---|
| 49 | { |
---|
| 50 | if (isset($map['lat'])) |
---|
| 51 | { |
---|
| 52 | include_once( dirname(__FILE__) .'/include/functions_metadata.php'); |
---|
| 53 | $ll = osm_exif_to_lat_lon($exif); |
---|
| 54 | if (is_array($ll)) |
---|
| 55 | { |
---|
| 56 | $exif[$map['lat']] = $ll[0]; |
---|
| 57 | $exif[$map['lon']] = $ll[1]; |
---|
| 58 | } |
---|
| 59 | } |
---|
| 60 | return $exif; |
---|
| 61 | } |
---|
| 62 | |
---|
| 63 | function osm_blockmanager_apply($mb_arr) |
---|
| 64 | { |
---|
| 65 | if ($mb_arr[0]->get_id() != 'menubar' ) |
---|
| 66 | return; |
---|
| 67 | if ( ($block=$mb_arr[0]->get_block('mbMenu')) != null ) |
---|
| 68 | { |
---|
| 69 | include_once( dirname(__FILE__) .'/include/functions.php'); |
---|
| 70 | load_language('plugin.lang', OSM_PATH); |
---|
| 71 | global $conf; |
---|
| 72 | $linkname = isset($conf['osm_conf']['left_menu']['link']) ? $conf['osm_conf']['left_menu']['link'] : 'OS World Map'; |
---|
| 73 | $link_title = sprintf( l10n('displays %s on a map'), strip_tags($conf['gallery_title']) ); |
---|
| 74 | $block->data['osm'] = array( |
---|
| 75 | 'URL' => osm_make_map_index_url( array('section'=>'categories') ), |
---|
| 76 | 'TITLE' => $link_title, |
---|
| 77 | 'NAME' => $linkname, |
---|
| 78 | 'REL'=> 'rel=nofollow' |
---|
| 79 | ); |
---|
| 80 | } |
---|
| 81 | } |
---|
| 82 | |
---|
| 83 | function osm_strbool($value) |
---|
| 84 | { |
---|
| 85 | return $value ? 'true' : 'false'; |
---|
| 86 | } |
---|
| 87 | |
---|
| 88 | function imagery($bl, $style){ |
---|
| 89 | $return = ""; |
---|
| 90 | if ($bl == 'mapnik') $return = "OSM.org (CC BY-SA)"; |
---|
| 91 | else if($bl == 'mapnikfr') $return = "Openstreetmap.fr (CC BY-SA)"; |
---|
| 92 | else if($bl == 'mapnikde') $return = "Openstreetmap.de (CC BY-SA)"; |
---|
| 93 | else if($bl == 'cloudmade') $return = "Cloudmade (CC BY-SA)"; |
---|
| 94 | else if($bl == 'mapquest') $return = "Mapquest (CC BY-SA)"; |
---|
| 95 | else if($bl == 'custom') $return = $style; |
---|
| 96 | return $return; |
---|
| 97 | } |
---|
| 98 | |
---|
| 99 | ?> |
---|