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 = "
";
+ foreach ( $rides as $ride ) {
+ $response .= "- ";
+ $response .= "" . $ride->name . '';
+ $response .= "
";
+ $unixtime = strtotime( $ride->start_date_local );
+ // Translators: Shows something like "On
<[went 10 miles] [during 2 hours] [climbing 100 feet]>."
+ $response .= sprintf( __( 'On %1$s %2$s', 'wp-strava' ), date_i18n( get_option( 'date_format' ), $unixtime ), date_i18n( get_option( 'time_format' ), $unixtime ) );
+
+ if ( is_numeric( $args['strava_club_id'] ) ) {
+ $response .= " " . $ride->athlete_name . '';
+ }
+
+ // Translators: "went 10 miles"
+ $response .= sprintf( __( ' went %1$s %2$s', 'wp-strava' ), $som->distance( $ride->distance ), $som->get_distance_label() );
+ // Translators: "during 2 hours"
+ $response .= sprintf( __( ' during %1$s %2$s', 'wp-strava' ), $som->time( $ride->elapsed_time ), $som->get_time_label() );
+ // Translators: "climbing 100 ft."
+ $response .= sprintf( __( ' climbing %1$s %2$s', 'wp-strava' ), $som->elevation( $ride->total_elevation_gain ), $som->get_elevation_label() );
+ $response .= ' ';
+ }
+ $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 = "";
- foreach ( $rides as $ride ) {
- $response .= "- ";
- $response .= "" . $ride->name . '';
- $response .= "
";
- $unixtime = strtotime( $ride->start_date_local );
- // Translators: Shows something like "On
<[went 10 miles] [during 2 hours] [climbing 100 feet]>."
- $response .= sprintf( __( 'On %1$s %2$s', 'wp-strava' ), date_i18n( get_option( 'date_format' ), $unixtime ), date_i18n( get_option( 'time_format' ), $unixtime ) );
-
- if ( is_numeric( $strava_club_id ) ) {
- $response .= " " . $ride->athlete_name . '';
- }
-
- // Translators: "went 10 miles"
- $response .= sprintf( __( ' went %1$s %2$s', 'wp-strava' ), $som->distance( $ride->distance ), $som->get_distance_label() );
- // Translators: "during 2 hours"
- $response .= sprintf( __( ' during %1$s %2$s', 'wp-strava' ), $som->time( $ride->elapsed_time ), $som->get_time_label() );
- // Translators: "climbing 100 ft."
- $response .= sprintf( __( ' climbing %1$s %2$s', 'wp-strava' ), $som->elevation( $ride->total_elevation_gain ), $som->get_elevation_label() );
- $response .= ' ';
- }
- $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' );
}
}