diff --git a/lib/LatestMapWidget.class.php b/lib/LatestMapWidget.class.php index afaa4a9..243acb2 100644 --- a/lib/LatestMapWidget.class.php +++ b/lib/LatestMapWidget.class.php @@ -17,7 +17,7 @@ class WPStrava_LatestMapWidget extends WP_Widget { public function form( $instance ) { // outputs the options form on admin $distance_min = isset( $instance['distance_min'] ) ? esc_attr( $instance['distance_min'] ) : ''; - $ride_index_params = isset( $instance['ride_index_params'] ) ? esc_attr( $instance['ride_index_params'] ) : ''; + $strava_club_id = isset( $instance['strava_club_id'] ) ? esc_attr( $instance['strava_club_id'] ) : ''; //provide some defaults //$ride_index_params = $ride_index_params ? $ride_index_params : 'athleteId=21'; @@ -27,35 +27,25 @@ class WPStrava_LatestMapWidget extends WP_Widget {

-

- - -

+

+ + +

athlete->id}"; - } - */ - - //$instance['athlete_hash'] = strip_tags( $new_instance['athlete_hash'] ); - return $instance; } public function widget( $args, $instance ) { extract( $args ); - $ride_index_params = $instance['ride_index_params']; $distance_min = $instance['distance_min']; + $strava_club_id = empty( $instance['strava_club_id'] ) ? NULL : $instance['strava_club_id']; $build_new = false; //try our transient first @@ -67,9 +57,7 @@ class WPStrava_LatestMapWidget extends WP_Widget { if ( ! $ride ) { $strava_rides = WPStrava::get_instance()->rides; - $ride_index_params = implode( '&', explode( "\n", $ride_index_params ) ); - parse_str( $ride_index_params, $params ); - $rides = $strava_rides->getRidesAdvanced( $params ); + $rides = $strava_rides->getRides( $strava_club_id ); if ( is_wp_error( $rides ) ) { echo $before_widget; @@ -101,47 +89,32 @@ class WPStrava_LatestMapWidget extends WP_Widget { if ( $ride ): echo $before_widget; ?>

Latest Ride

- name ?>" href="http://app.strava.com/activities/id ?>">getStaticImage( $ride->id, $build_new ); ?>latlng ); - $full_url = ''; $max_chars = 1865; - - //get the longest usable URL - while ( $url_len + $point_len < $max_chars ) { - $mod = (int) ( $count / $num ); - $points = array(); - for ( $i = 0; $i < $count; $i += $mod ) { - $point = $map_details->latlng[$i]; - $points[] = number_format( $point[0], 4 ) . ',' . number_format( $point[1], 4 ); - } - $url_points = join( '|', $points ); - $point_len = strlen( $url_points ); - if ( $url_len + $point_len < $max_chars ) - $full_url = $url . $url_points; - $num++; - } + if ( $url_len + strlen( $ride->map->polyline ) < $max_chars ) + $url .= $ride->map->polyline; + else + $url .= $ride->map->summary_polyline; - return ""; + return ""; } private function getStaticImage( $ride_id, $build_new ) { $img = get_option( 'strava_latest_map' ); if ( $build_new || ! $img ) { - $map_details = WPStrava::get_instance()->rides->getMapDetails( $ride_id ); - $img = $this->buildImage( $map_details ); + $ride = WPStrava::get_instance()->rides->getRide( $ride_id ); + $img = $this->buildImage( $ride ); update_option( 'strava_latest_map', $img ); } diff --git a/lib/LatestRidesWidget.class.php b/lib/LatestRidesWidget.class.php index 30d4369..40e8cdd 100644 --- a/lib/LatestRidesWidget.class.php +++ b/lib/LatestRidesWidget.class.php @@ -72,7 +72,7 @@ class WPStrava_LatestRidesWidget extends WP_Widget { $strava_rides = WPStrava::get_instance()->rides; - $rides = $strava_rides->getRides( $quantity, $strava_club_id ); + $rides = $strava_rides->getRides( $strava_club_id, $quantity ); if ( is_wp_error( $rides ) ) return $rides->get_error_message(); diff --git a/lib/RideShortcode.class.php b/lib/RideShortcode.class.php index db36f77..7c0eba5 100644 --- a/lib/RideShortcode.class.php +++ b/lib/RideShortcode.class.php @@ -35,8 +35,8 @@ class WPStrava_RideShortcode { $strava_som = get_option('strava_som_option', 'metric'); } - $ride = new Rides(); - $rideDetails = $ride->getRideDetails($id, $strava_som); + $ride = WPStrava::get_instance()->rides; + $rideDetails = $ride->getRide($id); $rideCoordinates = $ride->getRideMap($id, $token, $efforts, $threshold); if ($strava_som == "metric") { @@ -123,4 +123,4 @@ class WPStrava_RideShortcode { } // Initialize short code -RideShortcode::init(); +WPStrava_RideShortcode::init(); diff --git a/lib/Rides.class.php b/lib/Rides.class.php index 174dd44..c00aef9 100755 --- a/lib/Rides.class.php +++ b/lib/Rides.class.php @@ -7,32 +7,22 @@ class WPStrava_Rides { const RIDES_URL = "http://app.strava.com/rides/"; const ATHLETES_URL = "http://app.strava.com/athletes/"; - public function getRideDetails( $rideId ) { + public function getRide( $rideId ) { return WPStrava::get_instance()->api->get( "activities/{$rideId}" ); } // getRideDetails - - public function getRidesDetails( $rides ) { - $rides_details = array(); - foreach ( $rides as $stravaRide ) { - $detail = $this->getRideDetails( $stravaRide->id ); - - if ( is_wp_error( $detail ) ) - return $detail; - - $rides_details[] = $detail; - } - return $rides_details; - } // getRidesDetails - public function getRides( $quantity, $club_id = NULL ) { + public function getRides( $club_id = NULL, $quantity = NULL ) { $api = WPStrava::get_instance()->api; $data = NULL; + + $args = $quantity ? array( 'per_page' => $quantity ) : NULL; + //Get the json results using the constructor specified values. if ( is_numeric( $club_id ) ) { - $data = $api->get( "clubs/{$club_id}/activities", array( 'per_page' => $quantity ) ); + $data = $api->get( "clubs/{$club_id}/activities", $args ); } else { - $data = $api->get( 'athlete/activities', array( 'per_page' => $quantity ) ); + $data = $api->get( 'athlete/activities', $args ); } if ( is_wp_error( $data ) ) @@ -44,18 +34,6 @@ class WPStrava_Rides { return array(); } // getRides - - public function getRidesAdvanced( $params ) { - $data = WPStrava::get_instance()->api->get( 'rides', $params, 1 ); //version 1 - - if ( is_wp_error( $data ) ) - return $data; - - if ( isset( $data->rides ) ) - return $data->rides; - - return array(); - } public function getRideMap($rideId, $token, $efforts, $threshold) { if($rideId != 0 AND $token != "") { @@ -81,21 +59,14 @@ class WPStrava_Rides { $meters = $som->distance_inverse( $dist ); $long_rides = array(); - foreach ( $rides as $ride ) { - $ride_info = $this->getRideDetails( $ride->id ); - if ( $ride_info->ride->distance > $meters ) { + foreach ( $rides as $ride_info ) { + if ( $ride_info->distance > $meters ) { $long_rides[] = $ride_info; } } return $long_rides; } - - public function getMapDetails( $ride_id ) { - $token = WPStrava::get_instance()->settings->token; - return WPStrava::get_instance()->api->get( "rides/{$ride_id}/map_details", array( 'token' => $token ) ); - } - } // class Rides ?> diff --git a/lib/Strava.class.php b/lib/Strava.class.php index 16d5b95..ffd1adc 100644 --- a/lib/Strava.class.php +++ b/lib/Strava.class.php @@ -4,6 +4,7 @@ require_once WPSTRAVA_PLUGIN_DIR . 'lib/Settings.class.php'; require_once WPSTRAVA_PLUGIN_DIR . 'lib/SOM.class.php'; require_once WPSTRAVA_PLUGIN_DIR . 'lib/LatestRidesWidget.class.php'; require_once WPSTRAVA_PLUGIN_DIR . 'lib/LatestMapWidget.class.php'; +require_once WPSTRAVA_PLUGIN_DIR . 'lib/RideShortcode.class.php'; class WPStrava { diff --git a/wp-strava.php b/wp-strava.php index fbce144..d8a659d 100755 --- a/wp-strava.php +++ b/wp-strava.php @@ -3,7 +3,7 @@ Plugin Name: WP Strava Plugin URI: http://cmanon.com Description: Plugin to show your strava.com information in your wordpress blog. Some Icons are Copyright © Yusuke Kamiyamane. All rights reserved. Licensed under a Creative Commons Attribution 3.0 license. -Version: 0.70 +Version: 1.0 Author: Carlos Santa Cruz (cmanon), Justin Foell Author URI: http://cmanon.com License: GPL2 @@ -35,7 +35,6 @@ if( file_exists( WPSTRAVA_PLUGIN_DIR . 'lang/' . get_locale() . '.mo' ) ) { require_once WPSTRAVA_PLUGIN_DIR . 'lib/Strava.class.php'; $wpstrava = WPStrava::get_instance(); -//wp_die( '
' . var_export( $wpstrava->api->get( 'athlete' ), true ) );
 
 //@TODO only load these when needed using is_active_widget()
 function load_styles() {