Beispiel #1
0
    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);
     }
 }