diff --git a/handlers/location_views_handler_filter_proximity.inc b/handlers/location_views_handler_filter_proximity.inc index 7635e68..2944fc5 100644 --- a/handlers/location_views_handler_filter_proximity.inc +++ b/handlers/location_views_handler_filter_proximity.inc @@ -56,6 +56,7 @@ class location_views_handler_filter_proximity extends views_handler_filter { 'latlon' => t('Latitude / Longitude input'), 'postal' => t('Postal Code / Country'), 'postal_default' => t('Postal Code (assume default country)'), + 'user' => t('Use user's coordinates'), ), //'#id' => 'edit-options-type', '#description' => t('FIXME'), @@ -181,6 +182,15 @@ class location_views_handler_filter_proximity extends views_handler_filter { // Used from the distance field. function calculate_coords() { + if ($this->options['type'] == 'user') { + global $user; + $account = user_load($user->uid); + if (!empty($account->location)) { + $this->value['latitude'] = $account->location['latitude']; + $this->value['longitude'] = $account->location['longitude']; + } + } + if (!empty($this->value['latitude']) && !empty($this->value['longitude'])) { // If there are already coordinates, there's no work for us. return TRUE;