'google-maps-widget', 'description' => __('Displays a map image thumbnail with a larger map available in a lightbox.', 'google-maps-widget')); $control_ops = array('width' => 450, 'height' => 350); $this->WP_Widget('GoogleMapsWidget', __('Google Maps Widget', 'google-maps-widget'), $widget_ops, $control_ops); } // GoogleMapsWidget // widget edit form HTML function form($instance) { $instance = wp_parse_args((array) $instance, array('title' => __('Map', 'google-maps-widget'), 'address' => __('New York, USA', 'google-maps-widget'), 'thumb_pin_color' => 'red', 'thumb_pin_type' => 'predefined', 'thumb_pin_size' => 'default', 'thumb_pin_img' => '', 'thumb_width' => '250', 'thumb_height' => '250', 'thumb_type' => 'roadmap', 'thumb_zoom' => '13', 'thumb_header' => '', 'thumb_footer' => '', 'thumb_new_colors' => '1', 'thumb_link_type' => 'lightbox', 'thumb_link' => '', 'lightbox_width' => '550', 'lightbox_height' => '550', 'lightbox_type' => 'roadmap', 'lightbox_zoom' => '14', 'lightbox_bubble' => '1', 'lightbox_skin' => 'light', 'lightbox_title' => '1', 'lightbox_header' => '', 'lightbox_footer' => '')); extract($instance, EXTR_SKIP); // legacy fixes for older versions; it's auto-fixed on first widget save but has to be here if(!$thumb_pin_type) { $thumb_pin_type = 'predefined'; } if(!$thumb_link_type) { $thumb_link_type = 'lightbox'; } if(!$lightbox_skin) { $lightbox_skin = 'light'; } $map_types_thumb = array(array('val' => 'roadmap', 'label' => __('Road (default)', 'google-maps-widget')), array('val' => 'satellite', 'label' => __('Satellite', 'google-maps-widget')), array('val' => 'terrain', 'label' => __('Terrain', 'google-maps-widget')), array('val' => 'hybrid', 'label' => __('Hybrid', 'google-maps-widget'))); $map_types_lightbox = array(array('val' => 'm', 'label' => __('Road (default)', 'google-maps-widget')), array('val' => 'k', 'label' => __('Satellite', 'google-maps-widget')), array('val' => 'p', 'label' => __('Terrain', 'google-maps-widget')), array('val' => 'h', 'label' => __('Hybrid', 'google-maps-widget'))); $pin_colors = array(array('val' => 'black', 'label' => __('Black', 'google-maps-widget')), array('val' => 'brown', 'label' => __('Brown', 'google-maps-widget')), array('val' => 'green', 'label' => __('Green', 'google-maps-widget')), array('val' => 'purple', 'label' => __('Purple', 'google-maps-widget')), array('val' => 'yellow', 'label' => __('Yellow', 'google-maps-widget')), array('val' => 'blue', 'label' => __('Blue', 'google-maps-widget')), array('val' => 'gray', 'label' => __('Gray', 'google-maps-widget')), array('val' => 'orange', 'label' => __('Orange', 'google-maps-widget')), array('val' => 'red', 'label' => __('Red (default)', 'google-maps-widget')), array('val' => 'white', 'label' => __('White', 'google-maps-widget'))); $pin_sizes = array(array('val' => 'tiny', 'label' => __('Tiny', 'google-maps-widget')), array('val' => 'small', 'label' => __('Small', 'google-maps-widget')), array('val' => 'mid', 'label' => __('Medium', 'google-maps-widget')), array('val' => 'default', 'label' => __('Large (default)', 'google-maps-widget'))); $zoom_levels = array(array('val' => '0', 'label' => __('0 - entire world', 'google-maps-widget'))); for ($tmp = 1; $tmp <= 21; $tmp++) { $zoom_levels[] = array('val' => $tmp, 'label' => $tmp); } $lightbox_skins[] = array('val' => 'light', 'label' => __('Light (default)', 'google-maps-widget')); $lightbox_skins[] = array('val' => 'dark', 'label' => __('Dark', 'google-maps-widget')); $thumb_pin_types[] = array('val' => 'predefined', 'label' => __('Predefined (default)', 'google-maps-widget')); $thumb_pin_types[] = array('val' => 'custom', 'label' => __('Custom', 'google-maps-widget')); $thumb_link_types[] = array('val' => 'lightbox', 'label' => __('Lightbox (default)', 'google-maps-widget')); $thumb_link_types[] = array('val' => 'custom', 'label' => __('Custom link', 'google-maps-widget')); $thumb_link_types[] = array('val' => 'nolink', 'label' => __('Disable link', 'google-maps-widget')); echo '

'; echo '

'; echo '
'; echo '
'; echo '

'; echo ' x '; echo ''; echo ' px

'; echo '

'; echo '

'; echo '

'; echo '

'; echo '

'; echo '

'; echo '

'; echo '

'; echo '

'; echo ''; echo '

'; echo '

'; echo '

'; echo '

'; echo ''; echo '

'; echo ''; echo '

'; echo '

'; echo '

'; echo '

'; echo '

'; echo '
'; // thumbnail tab echo '
'; echo '

'; echo ' x '; echo ''; echo ' px

'; echo '

'; echo '

'; echo '

'; echo '

'; echo '

'; echo '

'; echo '

'; echo ''; echo '

'; echo '

'; echo ''; echo '

'; echo '

'; echo '

'; echo '

'; echo '

'; echo '
'; // lightbox tab echo '
'; // tabs echo '

' . __('If you like the plugin give us a shout. Thanks!', 'google-maps-widget') . ' @WebFactoryLtd

'; } // form // update/save widget options function update($new_instance, $old_instance) { $instance = $old_instance; $instance['title'] = $new_instance['title']; $instance['address'] = $new_instance['address']; $instance['thumb_pin_type'] = $new_instance['thumb_pin_type']; $instance['thumb_pin_color'] = $new_instance['thumb_pin_color']; $instance['thumb_pin_size'] = $new_instance['thumb_pin_size']; $instance['thumb_pin_img'] = trim($new_instance['thumb_pin_img']); $instance['thumb_width'] = (int) $new_instance['thumb_width']; $instance['thumb_height'] = (int) $new_instance['thumb_height']; $instance['thumb_zoom'] = $new_instance['thumb_zoom']; $instance['thumb_type'] = $new_instance['thumb_type']; $instance['thumb_link_type'] = $new_instance['thumb_link_type']; $instance['thumb_link'] = trim($new_instance['thumb_link']); $instance['thumb_header'] = trim($new_instance['thumb_header']); $instance['thumb_footer'] = trim($new_instance['thumb_footer']); $instance['thumb_new_colors'] = isset($new_instance['thumb_new_colors']); $instance['lightbox_width'] = (int) $new_instance['lightbox_width']; $instance['lightbox_height'] = (int) $new_instance['lightbox_height']; $instance['lightbox_type'] = $new_instance['lightbox_type']; $instance['lightbox_zoom'] = $new_instance['lightbox_zoom']; $instance['lightbox_bubble'] = isset($new_instance['lightbox_bubble']); $instance['lightbox_title'] = isset($new_instance['lightbox_title']); $instance['lightbox_header'] = trim($new_instance['lightbox_header']); $instance['lightbox_footer'] = trim($new_instance['lightbox_footer']); $instance['lightbox_skin'] = $new_instance['lightbox_skin']; return $instance; } // update // echo widget function widget($args, $instance) { $out = $tmp = ''; extract($args, EXTR_SKIP); $ll = ''; if ($instance['lightbox_zoom'] > 14) { $coordinates = GMW::get_coordinates($instance['address']); if ($coordinates) { $ll = $coordinates['lat'] . ',' . $coordinates['lng']; } } $lang = substr(@$_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); if (!$lang) { $lang = 'en'; } // legacy fix for older versions; it's auto-fixed on first widget save but has to be here if(!$instance['lightbox_skin']) { $instance['lightbox_skin'] = 'light'; } self::$widgets[] = array('title' => ($instance['lightbox_title']? $instance['title']: ''), 'width' => $instance['lightbox_width'], 'height' => $instance['lightbox_height'], 'footer' => $instance['lightbox_footer'], 'header' => $instance['lightbox_header'], 'address' => $instance['address'], 'zoom' => $instance['lightbox_zoom'], 'type' => $instance['lightbox_type'], 'skin' => $instance['lightbox_skin'], 'bubble' => $instance['lightbox_bubble'], 'll' => $ll, 'id' => $widget_id); $out .= $before_widget; if (!isset($instance['thumb_pin_type']) || empty($instance['thumb_pin_type'])) { $instance['thumb_pin_type'] = 'predefined'; } if (!isset($instance['thumb_link_type']) || empty($instance['thumb_link_type'])) { $instance['thumb_link_type'] = 'lightbox'; } if (isset($instance['thumb_new_colors']) && $instance['thumb_new_colors']) { $instance['thumb_new_colors'] = 'true'; } else { $instance['thumb_new_colors'] = 'false'; } $title = empty($instance['title'])? ' ' : apply_filters('widget_title', $instance['title']); if (!empty($title)) { $out .= $before_title . $title . $after_title; } if (isset($instance['thumb_header']) && $instance['thumb_header']) { $tmp .= wpautop(do_shortcode($instance['thumb_header'])); } $tmp .= '

'; if ($instance['thumb_link_type'] == 'lightbox') { $alt = __('Click to open larger map', 'google-maps-widget'); } else { $alt = esc_attr($instance['address']); } if ($instance['thumb_link_type'] == 'lightbox') { $tmp .= ''; } elseif ($instance['thumb_link_type'] == 'custom') { $tmp .= ''; } $tmp .= '' . $alt . ''; if ($instance['thumb_link_type'] == 'lightbox' || $instance['thumb_link_type'] == 'custom') { $tmp .= ''; } $tmp .= '

'; if (isset($instance['thumb_footer']) && $instance['thumb_footer']) { $tmp .= wpautop(do_shortcode($instance['thumb_footer'])); } $out .= apply_filters('google_maps_widget_content', $tmp); $out .= $after_widget; echo $out; } // widget } // class GoogleMapsWidget