diff --git a/lib/LatestActivities.class.php b/lib/LatestActivities.class.php new file mode 100644 index 0000000..bb4d6a7 --- /dev/null +++ b/lib/LatestActivities.class.php @@ -0,0 +1,47 @@ + WPStrava::get_instance()->settings->get_default_token(), + 'strava_club_id' => null, + 'quantity' => 5, + 'som' => WPStrava::get_instance()->settings->som, + ); + + $args = wp_parse_args( $args, $defaults ); + + $som = WPStrava_SOM::get_som( $args['som'] ); + $strava_rides = WPStrava::get_instance()->rides; + $rides = $strava_rides->getRides( $args['athlete_token'], $args['strava_club_id'], $args['quantity'] ); + + if ( is_wp_error( $rides ) ) { + return $rides->get_error_message(); + } + + $response = "'; + return $response; + } +} diff --git a/lib/LatestActivitiesShortcode.class.php b/lib/LatestActivitiesShortcode.class.php new file mode 100644 index 0000000..d70fa36 --- /dev/null +++ b/lib/LatestActivitiesShortcode.class.php @@ -0,0 +1,28 @@ + 'LatestActivitiesWidget', + 'description' => __( 'Will publish your latest activities from strava.com.', 'wp-strava' ), + ); + parent::__construct( 'wp-strava', __( 'Strava Latest Activities List', 'wp-strava' ), $widget_ops ); + add_action( 'wp_enqueue_scripts', array( $this, 'maybe_enqueue' ) ); + } + + public function maybe_enqueue() { + if ( is_active_widget( false, false, $this->id_base ) ) { + wp_enqueue_style( 'wp-strava-style' ); //only load this when wigit is loaded + } + } + + /** @see WP_Widget::widget */ + public function widget( $args, $instance ) { + $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'Latest Activities', 'wp-strava' ) : $instance['title'] ); + + $activities_args = array( + 'athlete_token' => isset( $instance['athlete_token'] ) ? $instance['athlete_token'] : null, + 'strava_club_id' => isset( $instance['strava_club_id'] ) ? $instance['strava_club_id'] : null, + 'quantity' => isset( $instance['quantity'] ) ? $instance['quantity'] : null, + ); + + echo $args['before_widget']; + if ( $title ) { + echo $args['before_title'] . $title . $args['after_title']; + } + echo WPStava_LatestActivities::get_activities_html( $activities_args ); + echo $args['after_widget']; + } + + /** @see WP_Widget::update */ + public function update( $new_instance, $old_instance ) { + $instance = $old_instance; + $instance['title'] = strip_tags( $new_instance['title'] ); + $instance['athlete_token'] = strip_tags( $new_instance['athlete_token'] ); + $instance['strava_club_id'] = strip_tags( $new_instance['strava_club_id'] ); + $instance['quantity'] = $new_instance['quantity']; + + return $instance; + } + + /** @see WP_Widget::form */ + public function form( $instance ) { + $title = isset( $instance['title'] ) ? esc_attr( $instance['title'] ) : __( 'Latest Activities', 'wp-strava' ); + $all_tokens = WPStrava::get_instance()->settings->get_all_tokens(); + $athlete_token = isset( $instance['athlete_token'] ) ? esc_attr( $instance['athlete_token'] ) : WPStrava::get_instance()->settings->get_default_token(); + $strava_club_id = isset( $instance['strava_club_id'] ) ? esc_attr( $instance['strava_club_id'] ) : ''; + $quantity = isset( $instance['quantity'] ) ? absint( $instance['quantity'] ) : 5; + + ?> +

+ + +

+

+ + +

+

+ + +

+

+ + +

+ 'LatestRidesWidget', - 'description' => __( 'Will publish your latest rides activity from strava.com.', 'wp-strava' ), - ); - parent::__construct( 'wp-strava', __( 'Strava Latest Activity List', 'wp-strava' ), $widget_ops ); - add_action( 'wp_enqueue_scripts', array( $this, 'maybe_enqueue' ) ); - } - - public function maybe_enqueue() { - if ( is_active_widget( false, false, $this->id_base ) ) { - wp_enqueue_style( 'wp-strava-style' ); //only load this when wigit is loaded - } - } - - /** @see WP_Widget::widget */ - public function widget( $args, $instance ) { - extract( $args ); - - $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'Activity', 'wp-strava' ) : $instance['title'] ); - $athlete_token = isset( $instance['athlete_token'] ) ? $instance['athlete_token'] : WPStrava::get_instance()->settings->get_default_token(); - $strava_club_id = empty( $instance['strava_club_id'] ) ? '' : $instance['strava_club_id']; - $quantity = empty( $instance['quantity'] ) ? '5' : $instance['quantity']; - - echo $before_widget; - if ( $title ) { - echo $before_title . $title . $after_title; - } - echo $this->strava_request_handler( $athlete_token, $strava_club_id, $quantity ); - echo $after_widget; - } - - /** @see WP_Widget::update */ - public function update( $new_instance, $old_instance ) { - $instance = $old_instance; - $instance['title'] = strip_tags( $new_instance['title'] ); - $instance['athlete_token'] = strip_tags( $new_instance['athlete_token'] ); - $instance['strava_club_id'] = strip_tags( $new_instance['strava_club_id'] ); - $instance['quantity'] = $new_instance['quantity']; - - return $instance; - } - - /** @see WP_Widget::form */ - public function form( $instance ) { - $title = isset( $instance['title'] ) ? esc_attr( $instance['title'] ) : __( 'Activity', 'wp-strava' ); - $all_tokens = WPStrava::get_instance()->settings->get_all_tokens(); - $athlete_token = isset( $instance['athlete_token'] ) ? esc_attr( $instance['athlete_token'] ) : WPStrava::get_instance()->settings->get_default_token(); - $strava_club_id = isset( $instance['strava_club_id'] ) ? esc_attr( $instance['strava_club_id'] ) : ''; - $quantity = isset( $instance['quantity'] ) ? absint( $instance['quantity'] ) : 5; - - ?> -

- - -

-

- - -

-

- - -

-

- - -

- rides; - - $rides = $strava_rides->getRides( $athlete_token, $strava_club_id, $quantity ); - if ( is_wp_error( $rides ) ) { - return $rides->get_error_message(); - } - - $response = "'; - return $response; - } // Function strava_request_handler - -} // class LatestRidesWidget diff --git a/lib/Strava.class.php b/lib/Strava.class.php index 2a1fa3e..bad22ca 100644 --- a/lib/Strava.class.php +++ b/lib/Strava.class.php @@ -2,6 +2,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/LatestActivitiesShortcode.class.php'; require_once WPSTRAVA_PLUGIN_DIR . 'lib/ActivityShortcode.class.php'; require_once WPSTRAVA_PLUGIN_DIR . 'lib/RouteShortcode.class.php'; require_once WPSTRAVA_PLUGIN_DIR . 'lib/StaticMap.class.php'; @@ -88,9 +89,9 @@ class WPStrava { } public function register_widgets() { - require_once WPSTRAVA_PLUGIN_DIR . 'lib/LatestRidesWidget.class.php'; + require_once WPSTRAVA_PLUGIN_DIR . 'lib/LatestActivitiesWidget.class.php'; require_once WPSTRAVA_PLUGIN_DIR . 'lib/LatestMapWidget.class.php'; - register_widget( 'WPStrava_LatestRidesWidget' ); + register_widget( 'WPStrava_LatestActivitiesWidget' ); register_widget( 'WPStrava_LatestMapWidget' ); } }