function widget($args, $instance) { // extracting info $instance = wp_parse_args($instance, array('zoom' => 5, 'maptype' => 'ROADMAP', 'height' => 400)); extract($args); extract($instance); if (empty($markers)) { return; } wp_enqueue_script('gmap-api', 'http' . (is_ssl() ? 's' : '') . '://maps.google.com/maps/api/js?sensor=false', false, false, true); wp_enqueue_script('jquery-gmap', framework_url() . 'builder/modules/gmap/jquery.gmap.min.js', false, false, true); $pin_url = framework_url() . 'builder/modules/gmap/pin.png'; echo '<style type="text/css"> .google-map { height: ' . $height . 'px; } </style>'; echo '<div class="google-map" id="googlemaps"></div>'; $markers_js = ''; $count = count($markers); foreach ($markers as $marker) { $anchor = ''; if (!empty($marker['lat']) && !empty($marker['long'])) { $anchor = '<br><br><a href=\'#\' onclick=\'mapCenterAt({latitude: ' . $marker['lat'] . ', longitude: ' . $marker['long'] . ', zoom: 16}, event)\'>' . __('[+] zoom here', 'spyropress') . '</a>'; } $popup = 1 == $count ? ',popup: true' : ''; $markers_js .= ' { address: "' . $marker['address'] . '", html: "<strong>' . $marker['title'] . '</strong><br>' . $marker['desc'] . $anchor . '", icon: { image: "' . $pin_url . '", iconsize: [26, 46], iconanchor: [12, 46] } ' . $popup . ' },'; } $markers_js = '// Map Markers' . "\n" . 'var mapMarkers = [' . $markers_js . '];'; $init_lat = !empty($init_lat) ? $init_lat : 0; $init_long = !empty($init_long) ? $init_long : 0; $markers_js .= "\n\n" . '// Map Initial Location' . "\n"; $markers_js .= 'var initLatitude = ' . $init_lat . ';' . "\n"; $markers_js .= 'var initLongitude = ' . $init_long . ';' . "\n"; $markers_js .= "\n\n" . '// Map Extended Settings' . "\n"; $markers_js .= ' var mapSettings = { controls: { panControl: true, zoomControl: true, mapTypeControl: true, scaleControl: true, streetViewControl: true, overviewMapControl: true }, scrollwheel: false, maptype: "' . $maptype . '", markers: mapMarkers, latitude: initLatitude, longitude: initLongitude, zoom: ' . $zoom . ' }; var map = $("#googlemaps").gMap(mapSettings); // Add Markers jQuery.each( mapMarkers, function(index, value) { $("#googlemaps").gMap("addMarker", value); }); '; $centerat_js = "\n\n" . '// Map Center At' . "\n"; $centerat_js .= ' var mapCenterAt = function(options, e) { e.preventDefault(); jQuery("#googlemaps").gMap("centerAt", options); }'; add_jquery_ready($markers_js); add_inline_js($centerat_js); }
/** * Register/Enqueue Admin Scripts */ function enqueue_scripts() { global $current_screen; // Register scripts using wp_register_script( $handle, $src, $deps, $ver, $in_footer ); wp_register_script('webfont-loader', 'http://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js', false, '1.0', false); wp_register_script('spyropress-admin', framework_assets_js() . 'spyropress-admin.js', false, '1.0', true); $panel_deps = array('jquery', 'jquery-ui-button', 'jquery-ui-datepicker', 'jquery-ui-slider', 'jquery-ui-sortable', 'thickbox', 'media-upload', 'spyropress-admin'); wp_register_script('spyropress-panel', framework_assets_js() . 'spyropress-panel.js', $panel_deps, '2.0.1'); // Register Params $spyropress_params = array('media_url' => framework_assets_img(), 'shortcode_url' => framework_url() . 'shortcodes/'); wp_localize_script('jquery', 'spyropress_admin_settings', $spyropress_params); // Fallback Strategy if (function_exists('wp_enqueue_media')) { wp_enqueue_media(); } else { wp_enqueue_script('media-upload'); wp_enqueue_script('thickbox'); wp_enqueue_style('thickbox'); } wp_enqueue_script('webfont-loader'); wp_enqueue_script('spyropress-panel'); if (current_theme_supports('spyropress-shortcode-generator')) { wp_enqueue_script('jquery-livequery', framework_assets_js() . 'jquery.livequery.js', false, false, true); wp_enqueue_script('jquery-appendo', framework_assets_js() . 'jquery.appendo.js', false, false, true); wp_enqueue_script('base64', framework_assets_js() . 'base64.js', false, false, true); wp_enqueue_script('shortcode-popup', framework_assets_js() . 'popup.js', false, false, true); } if ('spyropress_page_spyropress-theme' == $current_screen->base && current_theme_supports('spyropress-ace')) { wp_enqueue_script('ace_js', framework_assets_js() . 'ace/ace.js', false, false, true); wp_enqueue_script('ace_mode_js', framework_assets_js() . 'ace/mode-css.js', false, false, true); wp_enqueue_script('ace_custom_js', framework_assets_js() . 'ace/css-editor.js', false, false, true); } }