示例#1
0
 public function g1_gmaps_plugin_activate()
 {
     $migrated_map_id = get_option('g1_gmaps_migrated_map_id', false);
     if ($migrated_map_id) {
         return;
     }
     $options = get_option(G1_Theme()->get_id());
     $color = $options['map_color'];
     // hex or empty string
     $invert_lightness = $options['map_invert_lightness'] === '1';
     // bool
     $type = $options['map_type'];
     // roadmap | satellite | hybrid | terrain
     $center_lat = $options['map_latitude'];
     $center_long = $options['map_longitude'];
     $zoom = (int) $options['map_zoom'];
     // int
     $marker = $options['map_marker'];
     // none | standard | open-bubble
     $marker_icon = $options['map_marker_icon'];
     // image path
     $marker_content = $options['map_marker_content'];
     $marker_icon_id = null;
     if ($marker_icon) {
         $marker_icon_id = $this->get_image_id($marker_icon);
     }
     // create new map
     $defaults = G1_GMaps()->get_default_map_config();
     $config = array('width' => '', 'height' => '380', 'full_width' => 'standard', 'parallax' => 'standard', 'street_view_control' => 'none', 'overview_control' => 'none', 'scroll_wheel_to_zoom' => 'none', 'double_click_to_zoom' => 'standard', 'draggable' => 'standard', 'type_control' => 'horizontal', 'pan_control' => 'standard', 'scale_control' => 'none', 'zoom_control' => 'small');
     if ($center_lat) {
         $config['lat'] = $center_lat;
     }
     if ($center_long) {
         $config['long'] = $center_long;
     }
     if ($zoom) {
         $config['zoom'] = $zoom;
     }
     if ($type) {
         $config['type'] = $type;
     }
     if ($invert_lightness) {
         $config['invert_lightness'] = 'standard';
     }
     if ($color) {
         $c = new G1_Color($color);
         $config['color_hue'] = $c->get_hue();
         $config['color_saturation'] = $c->get_saturation() * 2 - 100;
         $config['color_lightness'] = $c->get_lightness() * 2 - 100;
         $config['custom_colors'] = 'standard';
     } else {
         $config['custom_colors'] = 'none';
     }
     $config = wp_parse_args($config, $defaults);
     $post = array('post_title' => 'Old map', 'post_status' => 'publish', 'post_type' => G1_GMaps()->get_post_type());
     $post_id = wp_insert_post($post);
     if ($post_id > 0) {
         $data_to_save = array();
         foreach ($config as $option_name => $option_value) {
             $data_to_save['map_' . $option_name] = $option_value;
         }
         update_post_meta($post_id, '_g1_gmap_lat', $data_to_save['map_lat']);
         update_post_meta($post_id, '_g1_gmap_long', $data_to_save['map_long']);
         update_post_meta($post_id, '_g1_gmap', $data_to_save);
         // create marker
         if ($marker !== 'none') {
             $marker_id = wp_insert_post(array('post_status' => 'publish', 'post_type' => G1_GMaps()->get_map_marker_post_type()));
             if ($marker_id > 0) {
                 $marker_data_to_save = G1_GMaps()->get_default_map_marker_config();
                 $marker_data_to_save['lat'] = $data_to_save['map_lat'];
                 $marker_data_to_save['long'] = $data_to_save['map_long'];
                 $marker_data_to_save['label'] = 'Marker';
                 if ($marker_icon_id) {
                     $marker_data_to_save['icon_id'] = $marker_icon_id;
                     $marker_data_to_save['icon_path'] = $marker_icon;
                 }
                 $marker_data_to_save['info'] = $marker_content;
                 $marker_data_to_save['info_state'] = $marker === 'open-bubble' ? 'standard' : 'none';
                 $marker_data_to_save['visibility'] = 'standard';
                 update_post_meta($marker_id, '_g1_gmap_id', $post_id);
                 update_post_meta($marker_id, '_g1_gmap_marker_lat', $marker_data_to_save['lat']);
                 update_post_meta($marker_id, '_g1_gmap_marker_long', $marker_data_to_save['long']);
                 update_post_meta($marker_id, '_g1_gmap_marker', $marker_data_to_save);
             }
         }
         update_option('g1_gmaps_migrated_map_id', $post_id);
         $global_map_enabled = $options['ta_prefooter_gmap'] === 'standard';
         // if map was enabled, we need to set it to new created map
         if ($global_map_enabled) {
             $options['ta_prefooter_gmap'] = $post_id;
             update_option(G1_Theme()->get_id(), $options);
         }
     }
 }