/**
  * Construct a Google Maps API URL
  *
  * @param bool $signed_in_option
  * @param string $libraries Optional. Default is 'places,drawing'. Which libraries to load.
  *
  * @return string
  */
 protected function google_maps_url($signed_in_option, $libraries = 'places,drawing')
 {
     $google_maps_api_key = gmb_get_option('gmb_maps_api_key');
     $gmb_language = gmb_get_option('gmb_language');
     $google_maps_api_url_args = array('libraries' => $libraries);
     //Google Maps API key present?
     if (!empty($google_maps_api_key)) {
         $google_maps_api_url_args['key'] = $google_maps_api_key;
     }
     //Preferred Language?
     if (!empty($google_maps_api_key)) {
         $google_maps_api_url_args['language'] = $gmb_language;
     }
     //Signed In?
     if (!empty($signed_in_option) && $signed_in_option == 'enabled') {
         $google_maps_api_url_args['signed_in'] = true;
     }
     $google_maps_api_url = add_query_arg($google_maps_api_url_args, 'https://maps.googleapis.com/maps/api/js?v=3.exp');
     return $google_maps_api_url;
 }
Example #2
0
 /**
  * Get Default Map Options
  *
  * Helper function that returns default map options from settings
  * @return array
  */
 public function get_default_map_options()
 {
     $width_height = gmb_get_option('gmb_width_height');
     $defaults = array('width' => isset($width_height['width']) ? $width_height['width'] : '100', 'width_unit' => isset($width_height['map_width_unit']) ? $width_height['map_width_unit'] : '%', 'height' => isset($width_height['height']) ? $width_height['height'] : '600', 'height_unit' => isset($width_height['map_height_unit']) ? $width_height['map_height_unit'] : 'px');
     return $defaults;
 }
Example #3
0
/**
 * Upgrade from Google Reference ID to Places ID
 *
 * @since 2.0
 * @uses  WP_Query
 * @return void
 */
function gmb_v2_upgrades()
{
    //Set key variables
    $google_api_key = gmb_get_option('gmb_api_key');
    //Loop through maps
    $args = array('post_type' => 'google_maps', 'posts_per_page' => -1);
    // The Query
    $the_query = new WP_Query($args);
    // The CPT Loop
    if ($the_query->have_posts()) {
        while ($the_query->have_posts()) {
            $the_query->the_post();
            //Repeater markers data
            $markers = get_post_meta(get_the_ID(), 'gmb_markers_group', true);
            //If no markers skip
            if (!empty($markers)) {
                //Markers loop
                foreach ($markers as $key => $marker) {
                    $ref_id = isset($marker['reference']) ? $marker['reference'] : '';
                    $place_id = isset($marker['place_id']) ? $marker['place_id'] : '';
                    //No ref ID -> skip; If place_id already there skip
                    if (empty($ref_id)) {
                        continue;
                    }
                    if (!empty($place_id)) {
                        continue;
                    }
                    //cURL the Google API for the Google Place ID
                    $google_places_url = add_query_arg(array('reference' => $ref_id, 'key' => $google_api_key), 'https://maps.googleapis.com/maps/api/place/details/json');
                    $response = wp_remote_get($google_places_url, array('timeout' => 15, 'sslverify' => false));
                    // make sure the response came back okay
                    if (is_wp_error($response)) {
                        return;
                    }
                    // decode the license data
                    $response = json_decode($response['body'], true);
                    //Place ID is there, now let's update the widget data
                    if (isset($response['result']['place_id'])) {
                        //Add Place ID to markers array
                        $markers[$key]['place_id'] = $response['result']['place_id'];
                    }
                    //Pause for 2 seconds so we don't overwhelm the Google API with requests
                    sleep(2);
                }
                //end foreach
                //Update repeater data with new data
                update_post_meta(get_the_ID(), 'gmb_markers_group', $markers);
            }
            //endif
        }
    }
    // Reset Post Data
    wp_reset_postdata();
    //Update our options and GTF out
    update_option('gmb_refid_upgraded', 'upgraded');
}
/**
 * Upgrade API Keys.
 *
 * API keys were stored under several option values over plugin versions, requiring reconciliation.
 *
 * @since 2.1
 * @return void
 */
function gmb_v21_api_key_upgrades()
{
    // Establish an array with all possible key values
    $api_key_values = array('gmb_maps_api_key' => gmb_get_option('gmb_maps_api_key'), 'gmb_api_key' => gmb_get_option('gmb_api_key'), 'maps_api_key' => gmb_get_option('maps_api_key'));
    // Remove all false/empty values, then get rid of duplicates, then reset the array indices (array_unique preserves indices)
    $unique_api_key_values = array_values(array_unique(array_filter($api_key_values)));
    // Start with an empty API key
    $reconciled_api_key = '';
    // If there was only one API key value in the list, we'll use that one
    if (count($unique_api_key_values) === 1) {
        $reconciled_api_key = $unique_api_key_values[0];
        // There was more than one API key value in the list
    } else {
        /**
         * Given that there are many API key values, we need to pick just one. So, we prioritize
         * `gmb_maps_api_key` over `gmb_api_key` over `maps_api_key`.
         */
        $reconciled_api_key = !empty($api_key_values['maps_api_key']) ? $api_key_values['maps_api_key'] : $reconciled_api_key;
        $reconciled_api_key = !empty($api_key_values['gmb_api_key']) ? $api_key_values['gmb_api_key'] : $reconciled_api_key;
        $reconciled_api_key = !empty($api_key_values['gmb_maps_api_key']) ? $api_key_values['gmb_maps_api_key'] : $reconciled_api_key;
    }
    // Set our API key under the `gmb_maps_api_key` key
    $gmb_settings = get_option('gmb_settings');
    $gmb_settings['gmb_maps_api_key'] = $reconciled_api_key;
    update_option('gmb_settings', $gmb_settings);
    // Woo, we made it!
    gmb_set_upgrade_complete('gmb_api_keys_upgraded');
}
 /**
  * Register and enqueue admin-specific JavaScript.
  *
  * @since     1.0.0
  *
  * @return    null    Return early if no settings page is registered.
  */
 public function enqueue_admin_scripts($hook)
 {
     global $post;
     $suffix = defined('GMB_DEBUG') && GMB_DEBUG ? '' : '.min';
     //Only enqueue scripts for CPT on post type screen
     if ($hook == 'post-new.php' || $hook == 'post.php' && 'google_maps' === $post->post_type) {
         wp_enqueue_script($this->plugin_slug . '-admin-gmaps', 'https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places', array('jquery'));
         wp_enqueue_script($this->plugin_slug . '-map-icons', plugins_url('includes/map-icons/js/map-icons.js', dirname(__FILE__)), array('jquery'));
         wp_enqueue_script($this->plugin_slug . '-admin-map-builder', plugins_url('assets/js/admin-google-map' . $suffix . '.js', __FILE__), array('jquery'), Google_Maps_Builder::VERSION);
         wp_enqueue_script($this->plugin_slug . '-admin-qtip', plugins_url('includes/tooltips/jquery.qtip' . $suffix . '.js', __FILE__), array('jquery'), Google_Maps_Builder::VERSION, true);
         $api_key = gmb_get_option('gmb_api_key');
         $geolocate = gmb_get_option('gmb_lat_lng');
         $maps_data = array('api_key' => $api_key, 'geolocate_setting' => isset($geolocate['geolocate_map']) ? $geolocate['geolocate_map'] : 'yes', 'default_lat' => isset($geolocate['latitude']) ? $geolocate['latitude'] : '32.715738', 'default_lng' => isset($geolocate['longitude']) ? $geolocate['longitude'] : '-117.16108380000003', 'plugin_url' => GMB_PLUGIN_URL, 'snazzy' => GMB_PLUGIN_URL . '/admin/assets/js/snazzy.json');
         wp_localize_script($this->plugin_slug . '-admin-map-builder', 'gmb_data', $maps_data);
     }
     wp_enqueue_style('dashicons');
 }
 /**
  * Load admin scripts
  *
  * @since 1.0
  *
  * @param string      $js_plugins
  * @param string      $suffix
  * @param string      $google_maps_api_url
  * @param string      $js_dir
  * @param WP_Post     $post
  * @param bool|string $signed_in_option
  */
 protected function admin_scripts($js_plugins, $suffix, $google_maps_api_url, $js_dir, $post, $signed_in_option)
 {
     wp_enqueue_style('wp-color-picker');
     //Magnific popup
     wp_register_script('google-maps-builder-admin-magnific-popup', $js_plugins . 'gmb-magnific' . $suffix . '.js', array('jquery'), GMB_VERSION);
     wp_enqueue_script('google-maps-builder-admin-magnific-popup');
     //Core plugin scripts.
     wp_register_script('google-maps-builder-admin-gmaps', $google_maps_api_url, array('jquery'));
     wp_enqueue_script('google-maps-builder-admin-gmaps');
     //Maps icons
     wp_register_script('google-maps-builder-map-icons', GMB_CORE_URL . 'includes/libraries/map-icons/js/map-icons.js', array('jquery'));
     wp_enqueue_script('google-maps-builder-map-icons');
     //Qtip
     wp_register_script('google-maps-builder-admin-qtip', $js_plugins . 'jquery.qtip' . $suffix . '.js', array('jquery'), GMB_VERSION, true);
     wp_enqueue_script('google-maps-builder-admin-qtip');
     //Map base
     wp_register_script('google-maps-builder-admin-map-builder', $js_dir . 'admin-google-map' . $suffix . '.js', array('jquery', 'wp-color-picker'), GMB_VERSION);
     wp_enqueue_script('google-maps-builder-admin-map-builder');
     //Modal magnific builder
     wp_register_script('google-maps-builder-admin-magnific-builder', $js_dir . 'admin-maps-magnific' . $suffix . '.js', array('jquery', 'wp-color-picker'), GMB_VERSION);
     wp_enqueue_script('google-maps-builder-admin-magnific-builder');
     //Map Controls
     wp_register_script('google-maps-builder-admin-map-controls', $js_dir . 'admin-maps-controls' . $suffix . '.js', array('jquery'), GMB_VERSION);
     wp_enqueue_script('google-maps-builder-admin-map-controls');
     $api_key = gmb_get_option('gmb_maps_api_key');
     $geolocate = gmb_get_option('gmb_lat_lng');
     $post_status = get_post_status($post->ID);
     $maps_data = array('api_key' => $api_key, 'geolocate_setting' => isset($geolocate['geolocate_map']) ? $geolocate['geolocate_map'] : 'yes', 'default_lat' => isset($geolocate['latitude']) ? $geolocate['latitude'] : '32.715738', 'default_lng' => isset($geolocate['longitude']) ? $geolocate['longitude'] : '-117.16108380000003', 'plugin_url' => GMB_PLUGIN_URL, 'default_marker' => apply_filters('gmb_default_marker', GMB_PLUGIN_URL . 'assets/img/spotlight-poi.png'), 'ajax_loader' => set_url_scheme(apply_filters('gmb_ajax_preloader_img', GMB_PLUGIN_URL . 'assets/images/spinner.gif'), 'relative'), 'snazzy' => GMB_PLUGIN_URL . 'assets/js/admin/snazzy.json', 'modal_default' => gmb_get_option('gmb_open_builder'), 'post_status' => $post_status, 'signed_in_option' => $signed_in_option, 'site_name' => get_bloginfo('name'), 'site_url' => get_bloginfo('url'), 'i18n' => array('update_map' => $post_status == 'publish' ? __('Update Map', 'google-maps-builder') : __('Publish Map', 'google-maps-builder'), 'set_place_types' => __('Update Map', 'google-maps-builder'), 'places_selection_changed' => __('Place selections have changed.', 'google-maps-builder'), 'multiple_places' => __('Hmm, it looks like there are multiple places in this area. Please confirm which place you would like this marker to display:', 'google-maps-builder'), 'btn_drop_marker' => '<span class="dashicons dashicons-location"></span>' . __('Drop a Marker', 'google-maps-builder'), 'btn_drop_marker_click' => __('Click on the Map', 'google-maps-builder'), 'btn_edit_marker' => __('Edit Marker', 'google-maps-builder'), 'btn_delete_marker' => __('Delete Marker', 'google-maps-builder'), 'visit_website' => __('Visit Website', 'google-maps-builder'), 'get_directions' => __('Get Directions', 'google-maps-builder'), 'api_key_required' => sprintf(__('%1$sGoogle API Error:%2$s Please include your Google Maps API key in the %3$splugin settings%5$s to start using the plugin. An valid API key with Google Maps and Places API access to your website is now required due to recent changes by Google. Getting an API key is free and easy. %4$sLearn how to obtain a Google Maps API key%5$s', 'google-maps-builder'), '<strong>', '</strong>', '<a href="' . esc_url(admin_url('edit.php?post_type=google_maps&page=gmb_settings')) . '">', '<a href="https://wordimpress.com/documentation/maps-builder-pro/creating-maps-api-key/" target="_blank" class="new-window">', '</a>')));
     wp_localize_script('google-maps-builder-admin-map-builder', 'gmb_data', $maps_data);
 }
 /**
  * Registers and sets up the Maps Builder custom post type
  *
  * @since 1.0
  * @return void
  */
 function setup_post_type()
 {
     $post_slug = gmb_get_option('gmb_custom_slug');
     $menu_position = gmb_get_option('gmb_menu_position');
     $has_archive = filter_var(gmb_get_option('gmb_has_archive'), FILTER_VALIDATE_BOOLEAN);
     $labels = array('name' => _x('Google Maps', 'post type general name', $this->plugin_slug), 'singular_name' => _x('Map', 'post type singular name', $this->plugin_slug), 'menu_name' => _x('Google Maps', 'admin menu', $this->plugin_slug), 'name_admin_bar' => _x('Google Maps', 'add new on admin bar', $this->plugin_slug), 'add_new' => _x('Add New', 'map', $this->plugin_slug), 'add_new_item' => __('Add New Map', $this->plugin_slug), 'new_item' => __('New Map', $this->plugin_slug), 'edit_item' => __('Edit Map', $this->plugin_slug), 'view_item' => __('View Map', $this->plugin_slug), 'all_items' => __('All Maps', $this->plugin_slug), 'search_items' => __('Search Maps', $this->plugin_slug), 'parent_item_colon' => __('Parent Maps:', $this->plugin_slug), 'not_found' => __('No Maps found.', $this->plugin_slug), 'not_found_in_trash' => __('No Maps found in Trash.', $this->plugin_slug));
     $args = array('labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => array('slug' => isset($post_slug) ? sanitize_title($post_slug) : 'google-maps'), 'capability_type' => 'post', 'has_archive' => isset($has_archive) ? $has_archive : true, 'hierarchical' => false, 'menu_position' => !empty($menu_position) ? intval($menu_position) : '23.1', 'supports' => array('title'));
     register_post_type('google_maps', $args);
 }
 /**
  * Register and enqueue admin-specific JavaScript.
  *
  * @since     1.0.0
  *
  * @param $hook
  *
  * @return    null    Return early if no settings page is registered.
  */
 function enqueue_admin_scripts($hook)
 {
     global $post;
     $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
     $js_dir = GMB_PLUGIN_URL . 'assets/js/admin/';
     $js_plugins = GMB_PLUGIN_URL . 'assets/js/plugins/';
     //Builder Google Maps API URL
     $google_maps_api_key = gmb_get_option('gmb_maps_api_key');
     $google_maps_api_url_args = array('sensor' => 'false', 'libraries' => 'places');
     //Google Maps API key present?
     if (!empty($google_maps_api_key)) {
         $google_maps_api_url_args['key'] = $google_maps_api_key;
     }
     $google_maps_api_url = add_query_arg($google_maps_api_url_args, 'https://maps.googleapis.com/maps/api/js?v=3.exp');
     //Only enqueue scripts for CPT on post type screen
     if (($hook == 'post-new.php' || $hook == 'post.php') && 'google_maps' === $post->post_type) {
         wp_enqueue_style('wp-color-picker');
         wp_register_script($this->plugin_slug . '-admin-magnific-popup', $js_plugins . 'gmb-magnific' . $suffix . '.js', array('jquery'), GMB_VERSION);
         wp_enqueue_script($this->plugin_slug . '-admin-magnific-popup');
         wp_register_script($this->plugin_slug . '-admin-gmaps', $google_maps_api_url, array('jquery'));
         wp_enqueue_script($this->plugin_slug . '-admin-gmaps');
         wp_register_script($this->plugin_slug . '-map-icons', GMB_PLUGIN_URL . 'includes/libraries/map-icons/js/map-icons.js', array('jquery'));
         wp_enqueue_script($this->plugin_slug . '-map-icons');
         wp_register_script($this->plugin_slug . '-admin-qtip', $js_plugins . 'jquery.qtip' . $suffix . '.js', array('jquery'), GMB_VERSION, true);
         wp_enqueue_script($this->plugin_slug . '-admin-qtip');
         //Map base
         wp_register_script($this->plugin_slug . '-admin-map-builder', $js_dir . 'admin-google-map' . $suffix . '.js', array('jquery', 'wp-color-picker'), GMB_VERSION);
         wp_enqueue_script($this->plugin_slug . '-admin-map-builder');
         //Modal builder
         wp_register_script($this->plugin_slug . '-admin-magnific-builder', $js_dir . 'admin-maps-magnific' . $suffix . '.js', array('jquery', 'wp-color-picker'), GMB_VERSION);
         wp_enqueue_script($this->plugin_slug . '-admin-magnific-builder');
         //Map Controls
         wp_register_script($this->plugin_slug . '-admin-map-controls', $js_dir . 'admin-maps-controls' . $suffix . '.js', array('jquery'), GMB_VERSION);
         wp_enqueue_script($this->plugin_slug . '-admin-map-controls');
         $api_key = gmb_get_option('gmb_maps_api_key');
         $geolocate = gmb_get_option('gmb_lat_lng');
         $post_status = get_post_status($post->ID);
         $maps_data = array('api_key' => $api_key, 'geolocate_setting' => isset($geolocate['geolocate_map']) ? $geolocate['geolocate_map'] : 'yes', 'default_lat' => isset($geolocate['latitude']) ? $geolocate['latitude'] : '32.715738', 'default_lng' => isset($geolocate['longitude']) ? $geolocate['longitude'] : '-117.16108380000003', 'plugin_url' => GMB_PLUGIN_URL, 'default_marker' => apply_filters('gmb_default_marker', GMB_PLUGIN_URL . 'assets/img/default-marker.png'), 'ajax_loader' => set_url_scheme(apply_filters('gmb_ajax_preloader_img', GMB_PLUGIN_URL . 'assets/images/spinner.gif'), 'relative'), 'snazzy' => GMB_PLUGIN_URL . 'assets/js/admin/snazzy.json', 'modal_default' => gmb_get_option('gmb_open_builder'), 'post_status' => $post_status, 'i18n' => array('update_map' => $post_status == 'publish' ? __('Update Map', $this->plugin_slug) : __('Publish Map', $this->plugin_slug), 'set_place_types' => __('Update Map', $this->plugin_slug), 'places_selection_changed' => __('Place selections have changed.', $this->plugin_slug), 'multiple_places' => __('Hmm, it looks like there are multiple places in this area. Please confirm which place you would like this marker to display:', $this->plugin_slug), 'btn_drop_marker' => '<span class="dashicons dashicons-location"></span>' . __('Drop a Marker', $this->plugin_slug), 'btn_drop_marker_click' => __('Click on the Map', $this->plugin_slug)));
         wp_localize_script($this->plugin_slug . '-admin-map-builder', 'gmb_data', $maps_data);
     }
     //Setting Scripts
     if ($hook == 'google_maps_page_gmb_settings') {
         wp_register_script($this->plugin_slug . '-admin-settings', $js_dir . 'admin-settings' . $suffix . '.js', array('jquery'), GMB_VERSION);
         wp_enqueue_script($this->plugin_slug . '-admin-settings');
     }
     wp_enqueue_style('dashicons');
 }
    /**
     * Maps activation banner.
     *
     * Welcome the user and provide instructions to create and add a Google Maps API key.
     *
     * @see http://stackoverflow.com/questions/2769148/whats-the-api-key-for-in-google-maps-api-v3/37994162#37994162
     *
     * @since  1.0
     */
    public function activation_notice()
    {
        $current_user = wp_get_current_user();
        // If the user has already dismissed our alert, bounce.
        if (get_user_meta($current_user->ID, $this->nag_meta_key)) {
            return;
        }
        //Only display if an API key is not entered.
        $api_key = gmb_get_option('gmb_maps_api_key');
        if (!empty($api_key)) {
            return;
        }
        //Only display if this is a new install (no maps).
        $count_maps = wp_count_posts('google_maps');
        if ($count_maps->publish != 0) {
            return;
        }
        //Don't show on the plugin's settings screen.
        if (isset($_GET['page']) && $_GET['page'] == 'gmb_settings') {
            return;
        }
        //Free pr
        //@TODO: Provide support link
        $support_link = 'https://wordpress.org/plugins/google-maps-builder/';
        ?>

		<style>

			div.gmb-svg-banner {
				float: left;
			}

			div.gmb-svg-banner > svg {
				width: 50px;
				height: 50px;
				float: left;
			}

			div.gmb-api-alert.updated {
				padding: 1em 2em;
				position: relative;
				border-color: #66BB6A;
			}

			div.gmb-api-alert img {
				max-width: 50px;
				position: relative;
				top: 1em;
			}

			div.gmb-banner-content-wrap {
				margin: 0 30px 0 70px;
			}

			div.gmb-api-alert h3 {
				font-weight: 300;
				margin: 5px 0 0;
			}

			div.gmb-api-alert h3 span {
				font-weight: 600;
				color: #66BB6A;
			}

			div.gmb-api-alert .alert-actions {
				position: relative;
				left: 70px;
			}

			div.gmb-api-alert a {
				color: #66BB6A;
			}

			div.gmb-api-alert .alert-actions a {
				text-decoration: underline;
				color: #808080;
			}

			div.gmb-api-alert .alert-actions a:hover {
				color: #555555;
			}

			div.gmb-api-alert .alert-actions a span {
				text-decoration: none;
				margin-right: 5px;
			}

			div.gmb-api-alert .dismiss {
				position: absolute;
				right: 15px;
				height: 100%;
				top: 50%;
				margin-top: -10px;
				outline: none;
				box-shadow: none;
				text-decoration: none;
				color: #333;
			}
		</style>

		<div class="updated gmb-api-alert">

			<div class="gmb-svg-banner"><?php 
        gmb_include_view('admin/views/mascot-svg.php');
        ?>
</div>

			<div class="gmb-banner-content-wrap">
				<h3><?php 
        printf(__("Welcome to %s! Let's get started.", 'google-maps-builder'), '<span>' . $this->plugin_name() . '</span>');
        ?>
</h3>

				<p><?php 
        echo sprintf(__('You\'re almost ready to start building awesome Google Maps! But first, in order to use %1$s you need to enter a Google Maps API key in the %2$splugin settings%5$s. An API key with Maps and Places APIs is now required by Google to access their mapping services. Don\'t worry, getting an API key is free and easy.<br> %3$sLearn How to Create a Maps API Key &raquo; %5$s | %4$s Google API Console &raquo; %5$s', 'google-maps-builder'), $this->plugin_name(), '<a href="' . esc_url(admin_url('edit.php?post_type=google_maps&page=gmb_settings')) . '">', '<a href="https://wordimpress.com/documentation/maps-builder-pro/creating-maps-api-key/" target="_blank">', '<a href="https://console.cloud.google.com/" target="_blank">', '</a>');
        ?>
</p>
			</div>

			<a href="<?php 
        //The Dismiss Button
        $nag_admin_dismiss_url = add_query_arg(array($this->nag_meta_key => 0), admin_url());
        echo esc_url($nag_admin_dismiss_url);
        ?>
" class="dismiss"><span class="dashicons dashicons-dismiss"></span></a>

			<div class="alert-actions">

				<a href="<?php 
        echo esc_url(admin_url('edit.php?post_type=google_maps&page=gmb_settings'));
        ?>
"><span class="dashicons dashicons-admin-settings"></span><?php 
        _e('Go to Settings', 'google-maps-builder');
        ?>
				</a>

				<a href="https://wordimpress.com/documentation/maps-builder-pro" target="_blank" style="margin-left:30px;"><span class="dashicons dashicons-media-text"></span><?php 
        _e('Plugin Documentation', 'google-maps-builder');
        ?>
				</a>

				<a href="<?php 
        echo $support_link;
        ?>
" target="_blank" style="margin-left:30px;">
					<span class="dashicons dashicons-sos"></span><?php 
        _e('Get Support', 'google-maps-builder');
        ?>
				</a>

			</div>

		</div>
		<?php 
    }