/**
  * @since 2.6.1
  * Public $item_info
  * Oget the post location information from database
  */
 public function item_info()
 {
     global $members_template;
     if (is_single() && empty($this->args['show_in_single_post'])) {
         $this->args['no_location_message'] = false;
     }
     if (empty($this->args['item_id']) && empty($members_template->member->ID) && !bp_is_user() && (!is_single() || empty($this->args['show_in_single_post']))) {
         return false;
     }
     if (!empty($this->args['item_id'])) {
         $this->args['item_id'] = $this->args['item_id'];
     } elseif (bp_is_user()) {
         global $bp;
         $this->args['item_id'] = $bp->displayed_user->id;
     } elseif (is_single()) {
         global $post;
         $this->args['item_id'] = $post->post_author;
     } elseif (!empty($members_template->member->ID)) {
         $this->args['item_id'] = $members_template->member->ID;
     } else {
         return false;
     }
     $item_info = gmw_get_member_info_from_db($this->args['item_id']);
     return $item_info;
 }
Esempio n. 2
0
/**
 * GMW FL function - display members's info
 */
function gmw_get_member_info($args)
{
    global $bp, $members_template;
    $args = apply_filters('gmw_fl_get_member_info_args', $args);
    //default shortcode attributes
    extract(shortcode_atts(array('user_id' => false, 'info' => 'formatted_address', 'message' => '', 'divider' => ' '), $args));
    if ($user_id != false) {
        $user_id = $user_id;
    } elseif (isset($bp->displayed_user->id)) {
        $user_id = $bp->displayed_user->id;
    } elseif (isset($members_template->member->id)) {
        $user_id = $members_template->member->id;
    } else {
        return;
    }
    $member_info = gmw_get_member_info_from_db($user_id);
    if (!isset($member_info) || $member_info === false) {
        return $message;
    }
    $mem_loc = array();
    $info = explode(',', str_replace(' ', '', $info));
    $count = 1;
    foreach ($info as $lc) {
        $loc = $member_info->{$lc};
        if ($count < count($info)) {
            $loc .= $divider;
        }
        $mem_loc[] = $loc;
        $count++;
    }
    return apply_filters('gmw_fl_get_member_info', implode(' ', $mem_loc), $member_info);
}
Esempio n. 3
0
 /**
  * Front-end display of widget.
  *
  * @see WP_Widget::widget()
  *
  * @param array $args     Widget arguments.
  * @param array $instance Saved values from database.
  */
 function widget($args, $instance)
 {
     extract($args);
     $single_post = $instance['single_post'];
     $display_name = $instance['display_name'];
     $map_height = $instance['map_height'];
     $map_width = $instance['map_width'];
     $directions = $instance['directions'];
     $map_type = $instance['map_type'];
     $address = $instance['address'];
     $no_location = $instance['no_location'];
     $zoom_level = $instance['zoom_level'];
     $address_fields = $instance['address_fields'];
     if (bp_is_user() || is_single() && isset($single_post) && $single_post == 1) {
         if (!isset($no_location)) {
             if (is_single()) {
                 global $post;
                 $member_id = $post->post_author;
             } else {
                 $member_id = $bp->displayed_user->id;
             }
             $member_info = gmw_get_member_info_from_db($member_id);
             if (!isset($member_info) || empty($member_info)) {
                 return;
             }
         }
         echo $before_widget;
         if (isset($display_name) && $display_name == 1) {
             if (is_single() && !bp_is_user()) {
                 global $post;
                 $member_id = $post->post_author;
             } elseif (bp_is_user()) {
                 global $bp;
                 $member_id = $bp->displayed_user->id;
             }
             echo $before_title . '<a href="' . bp_core_get_user_domain($member_id) . '">' . bp_core_get_user_displayname($member_id) . '&#39;s Location</a>' . $after_title;
         }
         $mAddress = isset($address_fields) && !empty($address_fields) ? implode(',', $address_fields) : 'street,city,state,zipcode,country';
         echo do_shortcode('[gmw_member_location widget="1" display_name="0" show_on_single_post="' . $single_post . '" address_fields="' . $mAddress . '" map_width="' . $map_width . '" map_height="' . $map_height . '" address="' . $address . '" map_type="' . $map_type . '" directions="' . $directions . '" no_location="' . $no_location . '" zoom_level="' . $zoom_level . '"]');
         echo $after_widget;
     }
 }
/**
 * GMW FL Shortcode - Display single member location
 * @version 1.0
 * @author Eyal Fitoussi
 */
function gmw_member_location($member)
{
    /*
     * extract the attributes
     */
    extract(shortcode_atts(array('user_id' => false, 'display_name' => 1, 'directions' => 1, 'map_height' => '250px', 'map_width' => '250px', 'map_type' => 'ROADMAP', 'zoom_level' => 13, 'address' => 1, 'no_location' => 0, 'address_fields' => 'formatted_address', 'show_on_single_post' => 1), $member));
    if ($user_id == false && !bp_is_user() && (!is_single() || $show_on_single_post != 1)) {
        return;
    }
    $scID = rand(1, 9999);
    if ($user_id != false) {
        $member_id = $user_id;
    } elseif (bp_is_user()) {
        global $bp;
        $member_id = $bp->displayed_user->id;
    } elseif (is_single()) {
        global $post;
        $member_id = $post->post_author;
    }
    $member_info = gmw_get_member_info_from_db($member_id);
    if (isset($member_info) && $member_info != false) {
        /*
         * get the full address
         */
        $address_fields = explode(',', $address_fields);
        if (!isset($address_fields) || empty($address_fields) || count($address_fields) == 5) {
            $address_array[] = $member_info->formatted_address;
        } else {
            $address_array = array();
            foreach ($address_fields as $field) {
                $address_array[] = $member_info->{$field};
            }
        }
        $show_address = apply_filters('gmw_fl_single_member_location_address', implode(' ', $address_array), $member_info, $member);
        /*
         * display the map and information
         */
        $member_map = false;
        $member_map .= '';
        $member_map .= '<div id="gmw-single-member-sc-wrapper-' . $scID . '" class="gmw-single-member-sc-wrapper gmw-single-member-sc-wrapper-' . $member_id . '">';
        if ($display_name == 1) {
            $member_map .= '<h3 class="display-name">' . bp_core_get_userlink($member_id) . '</h3>';
        }
        $member_map .= '<div class="map-wrapper" style="width:' . $map_width . '; height:' . $map_height . ';">';
        $member_map .= '<div id="gmw-single-member-sc-map-' . $scID . '" class="gmw-map" style="width:100%; height:100%"></div>';
        $member_map .= '<img class="gmw-map-loader" src="' . GMW_IMAGES . '/map-loader.gif" style="position:absolute;top:45%;left:25%;width:50%" />';
        $member_map .= '</div>';
        // map wrapper //
        if (isset($address_fields) && !empty($address_fields) && $address_fields != 0) {
            $member_map .= '<div class="address-wrapper"><span>' . __('Address: ', 'GMW') . '</span>' . $show_address . '</div>';
        }
        if ($directions == 1) {
            $member_map .= '<div  class="direction-wrapper">';
            $member_map .= '<div id="single-member-form-wrapper-' . $scID . '" class="single-member-form-wrapper" style="display:none;">';
            $member_map .= '<form action="https://maps.google.com/maps" method="get" target="_blank">';
            $member_map .= '<input type="text" name="saddr" />';
            $member_map .= '<input type="hidden" name="daddr" value="' . $show_address . '" /><br />';
            $member_map .= '<input type="submit" class="button" value="' . __('Go', 'GMW') . '" />';
            $member_map .= '</form>';
            $member_map .= '</div>';
            $member_map .= '<span><a href="#" class="single-member-toggle" id="single-member-toggle-' . $scID . '">' . __('Get Directions', 'GMW') . '</a></span>';
            $member_map .= '</div>';
        }
        $member_map .= '</div>';
        // map wrapper //
        ?>

        <script>
            jQuery(document).ready(function($) {

                $(function() {
                    $('#single-member-toggle-' +<?php 
        echo $scID;
        ?>
).click(function(event) {
                        event.preventDefault();
                        $('#single-member-form-wrapper-' +<?php 
        echo $scID;
        ?>
).slideToggle();
                    });
                });

                geocoder = new google.maps.Geocoder();
                geocoder.geocode({'address': '<?php 
        echo $show_address;
        ?>
'}, function(results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        var mapSingle = new google.maps.Map(document.getElementById('gmw-single-member-sc-map-' + <?php 
        echo $scID;
        ?>
), {
                            zoom: parseInt(<?php 
        echo $zoom_level;
        ?>
),
                            center: new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng()),
                            mapTypeId: google.maps.MapTypeId['<?php 
        echo $map_type;
        ?>
'],
                        });

                        marker = new google.maps.Marker({
                            position: new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng()),
                            map: mapSingle,
                            shadow: 'https://chart.googleapis.com/chart?chst=d_map_pin_shadow'
                        });
                    }
                });
            });
        </script>
        <?php 
        return apply_filters('gmw_fl_single_member_location', $member_map, $member_info);
    } elseif (isset($no_location)) {
        return apply_filters('gmw_fl_no_location_message', bp_core_get_user_displayname($member_id) . __(' has not added a location yet', 'GMW'), $member_id);
    }
}