From b95e8356ac548722c685421a286cc48ca1f70c1f Mon Sep 17 00:00:00 2001 From: Justin Foell Date: Fri, 9 Nov 2018 15:18:27 -0600 Subject: [PATCH] Reworked formatting and variable names to comply with WPCS --- lib/WPStrava/ActivityShortcode.php | 60 ++++++------- lib/WPStrava/ActivityType.php | 132 ++++++++++++++--------------- lib/WPStrava/SOM.php | 8 +- lib/WPStrava/SOMEnglish.php | 88 ++++++++++--------- lib/WPStrava/SOMMetric.php | 90 ++++++++++---------- readme.txt | 2 +- 6 files changed, 191 insertions(+), 189 deletions(-) diff --git a/lib/WPStrava/ActivityShortcode.php b/lib/WPStrava/ActivityShortcode.php index 8f76cc9..0cd8baf 100644 --- a/lib/WPStrava/ActivityShortcode.php +++ b/lib/WPStrava/ActivityShortcode.php @@ -63,7 +63,7 @@ class WPStrava_ActivityShortcode { try { $activity_details = $activity->get_activity( $atts['athlete_token'], $atts['id'] ); - } catch( WPStrava_Exception $e ) { + } catch ( WPStrava_Exception $e ) { return $e->to_html(); } @@ -75,35 +75,35 @@ class WPStrava_ActivityShortcode { if ( $activity_details ) { - $strava_activitytype = WPStrava_ActivityType::getType( $activity_details->type ); - $avg_speed = ''; - $max_speed = ''; - $speed_label = ''; - $avg_title = '' . __( 'Average Speed', 'wp-strava' ) . ''; - $max_title = '' . __( 'Max Speed', 'wp-strava' ) . ''; + $strava_activitytype = WPStrava_ActivityType::get_type_group( $activity_details->type ); + $avg_speed = ''; + $max_speed = ''; + $speed_label = ''; + $avg_title = '' . __( 'Average Speed', 'wp-strava' ) . ''; + $max_title = '' . __( 'Max Speed', 'wp-strava' ) . ''; - switch ($strava_activitytype) { - case WPStrava_ActivityType::IS_PACE_TYPE: - $avg_speed = '' . $strava_som->pace( $activity_details->average_speed ) . ''; - $max_speed = '' . $strava_som->pace( $activity_details->max_speed ) . ''; - $speed_label = '' . $strava_som->get_pace_label() . ''; - break; - case WPStrava_ActivityType::IS_SPEED_TYPE: - $avg_speed = '' . $strava_som->speed( $activity_details->average_speed ) . ''; - $max_speed = '' . $strava_som->speed( $activity_details->max_speed ) . ''; - $speed_label = '' . $strava_som->get_speed_label() . ''; - break; - case WPStrava_ActivityType::IS_PACE_TYPE: - $avg_speed = '' . $strava_som->swimpace( $activity_details->average_speed ) . ''; - $max_speed = '' . $strava_som->swimpace( $activity_details->max_speed ) . ''; - $speed_label = '' . $strava_som->get_swimpace_label() . ''; - break; - default: - $avg_title = ''; - $max_title = ''; - break; + switch ( $strava_activitytype ) { + case WPStrava_ActivityType::TYPE_GROUP_PACE: + $avg_speed = '' . $strava_som->pace( $activity_details->average_speed ) . ''; + $max_speed = '' . $strava_som->pace( $activity_details->max_speed ) . ''; + $speed_label = '' . $strava_som->get_pace_label() . ''; + break; + case WPStrava_ActivityType::TYPE_GROUP_SPEED: + $avg_speed = '' . $strava_som->speed( $activity_details->average_speed ) . ''; + $max_speed = '' . $strava_som->speed( $activity_details->max_speed ) . ''; + $speed_label = '' . $strava_som->get_speed_label() . ''; + break; + case WPStrava_ActivityType::TYPE_GROUP_PACE: + $avg_speed = '' . $strava_som->swimpace( $activity_details->average_speed ) . ''; + $max_speed = '' . $strava_som->swimpace( $activity_details->max_speed ) . ''; + $speed_label = '' . $strava_som->get_swimpace_label() . ''; + break; + default: + $avg_title = ''; + $max_title = ''; + break; - } + } return '
@@ -137,11 +137,11 @@ class WPStrava_ActivityShortcode { - + ' . WPStrava_StaticMap::get_image_tag( $activity_details, $map_height, $map_width, $atts['markers'] ) . ' - +
'; } // End if( $activity_details ). } diff --git a/lib/WPStrava/ActivityType.php b/lib/WPStrava/ActivityType.php index d3cf4eb..c404b15 100644 --- a/lib/WPStrava/ActivityType.php +++ b/lib/WPStrava/ActivityType.php @@ -8,83 +8,77 @@ * ActivityType class. * * @author Sebastian Erb - * @since 1.6.1 + * @since NEXT */ +class WPStrava_ActivityType { -class WPStrava_ActivityType -{ + const TYPE_ALPINESKI = 'AlpineSki'; + const TYPE_BACKCOUNTRYSKI = 'BackcountrySki'; + const TYPE_CANOEING = 'Canoeing'; + const TYPE_CROSSFIT = 'Crossfit'; + const TYPE_EBIKERIDE = 'EBikeRide'; + const TYPE_ELLIPTICAL = 'Elliptical'; + const TYPE_HANDCYCLE = 'Hike'; + const TYPE_HIKE = 'IceSkate'; + const TYPE_ICESKATE = 'InlineSkate'; + const TYPE_INLINESKATE = 'AlpineSki'; + const TYPE_KAYAKING = 'Kayaking'; + const TYPE_KITESURF = 'Kitesurf'; + const TYPE_NORDICSKI = 'NordicSki'; + const TYPE_RIDE = 'Ride'; + const TYPE_ROCKCLIMBING = 'RockClimbing'; + const TYPE_ROLLERSKI = 'RollerSki'; + const TYPE_ROWING = 'Rowing'; + const TYPE_RUN = 'Run'; + const TYPE_SNOWBOARD = 'Snowboard'; + const TYPE_SNOWSHOE = 'Snowshoe'; + const TYPE_STAIRSTEPPER = 'StairStepper'; + const TYPE_STANDUPPADDLING = 'StandUpPaddling'; + const TYPE_SURFING = 'Surfing'; + const TYPE_SWIM = 'Swim'; + const TYPE_VIRTUALRIDE = 'VirtualRide'; + const TYPE_VIRTUALRUN = 'VirtualRun'; + const TYPE_WALK = 'Walk'; + const TYPE_WEIGHTTRAINING = 'WeightTraining'; + const TYPE_WHEELCHAIR = 'Wheelchair'; + const TYPE_WINDSURF = 'Windsurf'; + const TYPE_WORKOUT = 'Workout'; + const TYPE_YOGA = 'Yoga'; - const TYPE_ALPINESKI = 'AlpineSki'; - const TYPE_BACKCOUNTRYSKI = 'BackcountrySki'; - const TYPE_CANOEING = 'Canoeing'; - const TYPE_CROSSFIT = 'Crossfit'; - const TYPE_EBIKERIDE = 'EBikeRide'; - const TYPE_ELLIPTICAL = 'Elliptical'; - const TYPE_HANDCYCLE = 'Hike'; - const TYPE_HIKE = 'IceSkate'; - const TYPE_ICESKATE = 'InlineSkate'; - const TYPE_INLINESKATE = 'AlpineSki'; - const TYPE_KAYAKING = 'Kayaking'; - const TYPE_KITESURF = 'Kitesurf'; - const TYPE_NORDICSKI = 'NordicSki'; - const TYPE_RIDE = 'Ride'; - const TYPE_ROCKCLIMBING = 'RockClimbing'; - const TYPE_ROLLERSKI = 'RollerSki'; - const TYPE_ROWING = 'Rowing'; - const TYPE_RUN = 'Run'; - const TYPE_SNOWBOARD = 'Snowboard'; - const TYPE_SNOWSHOE = 'Snowshoe'; - const TYPE_STAIRSTEPPER = 'StairStepper'; - const TYPE_STANDUPPADDLING = 'StandUpPaddling'; - const TYPE_SURFING = 'Surfing'; - const TYPE_SWIM = 'Swim'; - const TYPE_VIRTUALRIDE = 'VirtualRide'; - const TYPE_VIRTUALRUN = 'VirtualRun'; - const TYPE_WALK = 'Walk'; - const TYPE_WEIGHTTRAINING = 'WeightTraining'; - const TYPE_WHEELCHAIR = 'Wheelchair'; - const TYPE_WINDSURF = 'Windsurf'; - const TYPE_WORKOUT = 'Workout'; - const TYPE_YOGA = 'Yoga'; + const TYPE_DEFAULT = self::TYPE_RIDE; - const TYPE_DEFAULT = TYPE_RIDE; + private static $water_types = array( self::TYPE_SWIM ); + private static $pace_types = array( self::TYPE_CANOEING, self::TYPE_HIKE, self::TYPE_RUN, self::TYPE_SNOWSHOE, self::TYPE_VIRTUALRUN, self::TYPE_WALK ); + private static $speed_types = array( self::TYPE_ALPINESKI, self::TYPE_BACKCOUNTRYSKI, self::TYPE_EBIKERIDE, self::TYPE_ELLIPTICAL, self::TYPE_HANDCYCLE, self::TYPE_ICESKATE, self::TYPE_INLINESKATE, self::TYPE_KAYAKING, self::TYPE_KITESURF, self::TYPE_NORDICSKI, self::TYPE_RIDE, self::TYPE_ROCKCLIMBING, self::TYPE_ROLLERSKI, self::TYPE_ROWING, self::TYPE_SNOWBOARD, self::TYPE_STAIRSTEPPER, self::TYPE_STANDUPPADDLING, self::TYPE_SURFING, self::TYPE_VIRTUALRIDE, self::TYPE_WHEELCHAIR, self::TYPE_WINDSURF ); - private static $waterTypes = array(WPStrava_ActivityType::TYPE_SWIM); - private static $paceTypes = array(WPStrava_ActivityType::TYPE_CANOEING, WPStrava_ActivityType::TYPE_HIKE, WPStrava_ActivityType::TYPE_RUN, WPStrava_ActivityType::TYPE_SNOWSHOE, WPStrava_ActivityType::TYPE_VIRTUALRUN, WPStrava_ActivityType::TYPE_WALK); - private static $speedTypes = array(WPStrava_ActivityType::TYPE_ALPINESKI, WPStrava_ActivityType::TYPE_BACKCOUNTRYSKI, WPStrava_ActivityType::TYPE_EBIKERIDE, WPStrava_ActivityType::TYPE_ELLIPTICAL, WPStrava_ActivityType::TYPE_HANDCYCLE, WPStrava_ActivityType::TYPE_ICESKATE, WPStrava_ActivityType::TYPE_INLINESKATE, WPStrava_ActivityType::TYPE_KAYAKING, WPStrava_ActivityType::TYPE_KITESURF, WPStrava_ActivityType::TYPE_NORDICSKI, WPStrava_ActivityType::TYPE_RIDE, WPStrava_ActivityType::TYPE_ROCKCLIMBING, WPStrava_ActivityType::TYPE_ROLLERSKI, WPStrava_ActivityType::TYPE_ROWING, WPStrava_ActivityType::TYPE_SNOWBOARD, WPStrava_ActivityType::TYPE_STAIRSTEPPER, WPStrava_ActivityType::TYPE_STANDUPPADDLING, WPStrava_ActivityType::TYPE_SURFING, WPStrava_ActivityType::TYPE_VIRTUALRIDE, WPStrava_ActivityType::TYPE_WHEELCHAIR, WPStrava_ActivityType::TYPE_WINDSURF); + const TYPE_GROUP_WATER = 'water'; + const TYPE_GROUP_PACE = 'pace'; + const TYPE_GROUP_SPEED = 'speed'; + const TYPE_GROUP_OTHER = 'other'; - const ALL_TYPES = array(WPStrava_ActivityType::TYPE_SWIM, WPStrava_ActivityType::TYPE_CANOEING, WPStrava_ActivityType::TYPE_HIKE, WPStrava_ActivityType::TYPE_RUN, WPStrava_ActivityType::TYPE_SNOWSHOE, WPStrava_ActivityType::TYPE_VIRTUALRUN, WPStrava_ActivityType::TYPE_WALK, WPStrava_ActivityType::TYPE_ALPINESKI, WPStrava_ActivityType::TYPE_BACKCOUNTRYSKI, WPStrava_ActivityType::TYPE_EBIKERIDE, WPStrava_ActivityType::TYPE_ELLIPTICAL, WPStrava_ActivityType::TYPE_HANDCYCLE, WPStrava_ActivityType::TYPE_ICESKATE, WPStrava_ActivityType::TYPE_INLINESKATE, WPStrava_ActivityType::TYPE_KAYAKING, WPStrava_ActivityType::TYPE_KITESURF, WPStrava_ActivityType::TYPE_NORDICSKI, WPStrava_ActivityType::TYPE_RIDE, WPStrava_ActivityType::TYPE_ROCKCLIMBING, WPStrava_ActivityType::TYPE_ROLLERSKI, WPStrava_ActivityType::TYPE_ROWING, WPStrava_ActivityType::TYPE_SNOWBOARD, WPStrava_ActivityType::TYPE_STAIRSTEPPER, WPStrava_ActivityType::TYPE_STANDUPPADDLING, WPStrava_ActivityType::TYPE_SURFING, WPStrava_ActivityType::TYPE_VIRTUALRIDE, WPStrava_ActivityType::TYPE_WHEELCHAIR, WPStrava_ActivityType::TYPE_WINDSURF, WPStrava_ActivityType::TYPE_CROSSFIT, WPStrava_ActivityType::TYPE_WEIGHTTRAINING, WPStrava_ActivityType::TYPE_WORKOUT, WPStrava_ActivityType::TYPE_YOGA); + /** + * Get the type of activity. + * + * @param string $type Type provided by Strava. + * @return string Type group (water/pace/speed/other). + * @author @author Sebastian Erb + * @since NEXT + */ + public static function get_type_group( $type ) { - const IS_WATER_TYPE = "water_type"; - const IS_PACE_TYPE = "pace_type"; - const IS_SPEED_TYPE = "speed_type"; - const IS_OTHER_TYPE = "other_type"; + if ( in_array( $type, self::$pace_types, true ) ) { + return self::TYPE_GROUP_PACE; + } - public static function verifyType( $type ) { + if ( in_array( $type, self::$speed_types, true ) ) { + return self::TYPE_GROUP_SPEED; + } - if($type==null || !in_array($type, WPStrava_ActivityType::ALL_TYPES)) - return WPStrava_ActivityType::TYPE_DEFAULT; - else - return $type; + if ( in_array( $type, self::$water_types, true ) ) { + return self::TYPE_GROUP_WATER; + } - } + return self::TYPE_GROUP_OTHER; + } - public static function getType( $type ){ - - if(in_array($type, WPStrava_ActivityType::$paceTypes)){ - return WPStrava_ActivityType::IS_PACE_TYPE; - } - - if(in_array($type, WPStrava_ActivityType::$speedTypes)){ - return WPStrava_ActivityType::IS_SPEED_TYPE; - } - - if(in_array($type, WPStrava_ActivityType::$waterTypes)){ - return WPStrava_ActivityType::IS_WATER_TYPE; - } - - return WPStrava_ActivityType::IS_OTHER_TYPE; - - } - -} \ No newline at end of file +} diff --git a/lib/WPStrava/SOM.php b/lib/WPStrava/SOM.php index 1cdc465..168a9bf 100644 --- a/lib/WPStrava/SOM.php +++ b/lib/WPStrava/SOM.php @@ -26,10 +26,10 @@ abstract class WPStrava_SOM { abstract public function get_speed_label(); abstract public function elevation( $m ); abstract public function get_elevation_label(); - abstract public function pace( $mps ); - abstract public function get_pace_label(); - abstract public function swimpace( $mps ); - abstract public function get_swimpace_label(); + abstract public function pace( $mps ); + abstract public function get_pace_label(); + abstract public function swimpace( $mps ); + abstract public function get_swimpace_label(); public function time( $seconds ) { return date( 'H:i:s', mktime( 0, 0, $seconds ) ); diff --git a/lib/WPStrava/SOMEnglish.php b/lib/WPStrava/SOMEnglish.php index 290b20c..920ed93 100644 --- a/lib/WPStrava/SOMEnglish.php +++ b/lib/WPStrava/SOMEnglish.php @@ -55,56 +55,60 @@ class WPStrava_SOMEnglish extends WPStrava_SOM { return __( 'mph', 'wp-strava' ); } - /** - * Change meters per second to Minutes Per Mile. - * - * @param float $mps Meters per second. - * @return float Minutes Per Mile. - */ - public function pace( $mps ) { + /** + * Change meters per second to Minutes Per Mile. + * + * @param float $mps Meters per second. + * @return float Minutes Per Mile. + */ + public function pace( $mps ) { - $mph = $mps * 2.2369; - $s = 3600 / $mph; - $ss = $s/60; - $ms = floor($ss)*60; - $sec = round($s-$ms); - $min = floor($ss); + if ( ! $mps ) { + return __( 'N/A', 'wp-strava' ); + } - return "$min:$sec"; - } + $mph = $mps * 2.2369; + $s = 3600 / $mph; + $ss = $s / 60; + $ms = floor( $ss ) * 60; + $sec = round( $s - $ms ); + $min = floor( $ss ); - /** - * Abbreviated label for this system of measure's pace - Minutes Per Mile: min/mile - * - * @return string 'min/mile' - */ - public function get_pace_label() { - return __( 'min/mile', 'wp-strava' ); - } + return "{$min}:{$sec}"; + } - /** - * Change meters per second to Minutes Per 100 Meters. - * - * @param float $mps Meters per second. - * @return float Minutes Per 100 Meters. - */ - public function swimpace( $mps ) { + /** + * Abbreviated label for this system of measure's pace - Minutes Per Mile: min/mile + * + * @return string 'min/mile' + */ + public function get_pace_label() { + return __( 'min/mile', 'wp-strava' ); + } - $kmh = $mps * 3.6; - $min100m = 60/$kmh/10; + /** + * Change meters per second to Minutes Per 100 Meters. + * + * @param float $mps Meters per second. + * @return float Minutes Per 100 Meters. + */ + public function swimpace( $mps ) { - return number_format( $min100m, 2 ); + $kmh = $mps * 3.6; + $min100m = 60 / $kmh / 10; - } + return number_format( $min100m, 2 ); - /** - * Abbreviated label for this system of measure's pace - Minutes Per 100 Meters: min/100m - * - * @return string 'min/100m' - */ - public function get_swimpace_label() { - return __( 'min/100m', 'wp-strava' ); - } + } + + /** + * Abbreviated label for this system of measure's pace - Minutes Per 100 Meters: min/100m + * + * @return string 'min/100m' + */ + public function get_swimpace_label() { + return __( 'min/100m', 'wp-strava' ); + } /** * Change meters to feet. diff --git a/lib/WPStrava/SOMMetric.php b/lib/WPStrava/SOMMetric.php index 8b99c03..559ee7d 100644 --- a/lib/WPStrava/SOMMetric.php +++ b/lib/WPStrava/SOMMetric.php @@ -55,56 +55,60 @@ class WPStrava_SOMMetric extends WPStrava_SOM { return __( 'km/h', 'wp-strava' ); } - /** - * Change meters per second to kilometers per hour. - * - * @param float $mps Meters per second. - * @return float Kilometers per hour. - */ - public function pace( $mps ) { - // 4 m/s => 14,4 km/h => 4:10 min/km + /** + * Change meters per second to kilometers per hour. + * + * @param float $mps Meters per second. + * @return float Kilometers per hour. + */ + public function pace( $mps ) { - $kmh = $mps * 3.6; - $s = 3600 / $kmh; - $ss = $s/60; - $ms = floor($ss)*60; - $sec = round($s-$ms); - $min = floor($ss); + if ( ! $mps ) { + return __( 'N/A', 'wp-strava' ); + } - return "$min:$sec"; - } + // 4 m/s => 14,4 km/h => 4:10 min/km + $kmh = $mps * 3.6; + $s = 3600 / $kmh; + $ss = $s / 60; + $ms = floor( $ss ) * 60; + $sec = round( $s - $ms ); + $min = floor( $ss ); - /** - * Abbreviated label for this system of measure's speed - Minutes Per Kilometers: min/km - * - * @return string 'min/km' - */ - public function get_pace_label() { - return __( 'min/km', 'wp-strava' ); - } + return "{$min}:{$sec}"; + } - /** - * Change meters per second to Minutes Per 100 Meters. - * - * @param float $mps Meters per second. - * @return float Minutes Per 100 Meters. - */ - public function swimpace( $mps ) { + /** + * Abbreviated label for this system of measure's speed - Minutes Per Kilometers: min/km + * + * @return string 'min/km' + */ + public function get_pace_label() { + return __( 'min/km', 'wp-strava' ); + } - $kmh = $mps * 3.6; - $min100m = 60/$kmh/10; + /** + * Change meters per second to Minutes Per 100 Meters. + * + * @param float $mps Meters per second. + * @return float Minutes Per 100 Meters. + */ + public function swimpace( $mps ) { - return number_format( $min100m, 2 ); - } + $kmh = $mps * 3.6; + $min100m = 60 / $kmh / 10; - /** - * Abbreviated label for this system of measure's pace - Minutes Per 100 Meters: min/100m - * - * @return string 'min/100m' - */ - public function get_swimpace_label() { - return __( 'min/100m', 'wp-strava' ); - } + return number_format( $min100m, 2 ); + } + + /** + * Abbreviated label for this system of measure's pace - Minutes Per 100 Meters: min/100m + * + * @return string 'min/100m' + */ + public function get_swimpace_label() { + return __( 'min/100m', 'wp-strava' ); + } /** * Change meters to meters };^) diff --git a/readme.txt b/readme.txt index 1495704..1a30e30 100644 --- a/readme.txt +++ b/readme.txt @@ -78,7 +78,7 @@ WP-Strava caches activity for one hour so your site doesn't hit the Strava API o == Changelog == -= 1.6.1 = += NEXT = Added Pace support (min/km) for Activity Shortcode Added Swimpace support (min/100m) for Activity Shortcode