Files
wp-strava/lib/RideShortcode.class.php
T

85 lines
2.7 KiB
PHP
Raw Normal View History

2013-02-03 20:38:55 -06:00
<?php
class WPStrava_RideShortcode {
static $add_script;
static function init() {
add_shortcode('ride', array(__CLASS__, 'handler'));
add_action('wp_footer', array(__CLASS__, 'printScripts'));
}
// Shortcode handler function
2014-11-04 21:09:12 -06:00
// [ride id=id som=metric map_width="100%" map_height="400px"]
2013-02-03 20:38:55 -06:00
function handler($atts) {
self::$add_script = true;
2014-11-01 22:53:32 -05:00
$defaults = array(
'id' => 0,
'som' => WPStrava::get_instance()->settings->som,
'map_width' => '480',
'map_height' => '320',
);
2013-02-03 20:38:55 -06:00
2014-11-01 22:53:32 -05:00
extract(shortcode_atts($defaults, $atts));
$strava_som = WPStrava_SOM::get_som( $som );
$strava_ride = WPStrava::get_instance()->rides;
$rideDetails = $strava_ride->getRide( $id );
2013-02-03 20:38:55 -06:00
2014-11-01 22:53:32 -05:00
//sanitize width & height
$map_width = str_replace( '%', '', $map_width );
$map_height = str_replace( '%', '', $map_height );
$map_width = str_replace( 'px', '', $map_width );
$map_height = str_replace( 'px', '', $map_height );
if( $rideDetails ) {
return '
<div id="ride-header-' . $id . '" class="wp-strava-ride-container">
<table id="ride-details-table">
<thead>
<tr>
<th>' . __( 'Elapsed Time', 'wp-strava' ) . '</th>
<th>' . __( 'Moving Time', 'wp-strava' ) . '</th>
<th>' . __( 'Distance', 'wp-strava' ) . '</th>
<th>' . __( 'Average Speed', 'wp-strava' ) . '</th>
<th>' . __( 'Max Speed', 'wp-strava' ) . '</th>
<th>' . __( 'Elevation Gain', 'wp-strava' ) . '</th>
</tr>
</thead>
<tbody>
<tr class="ride-details-table-info">
<td>' . $strava_som->time( $rideDetails->elapsed_time ) . '</td>
<td>' . $strava_som->time( $rideDetails->moving_time ) . '</td>
<td>' . $strava_som->distance( $rideDetails->distance ) . '</td>
<td>' . $strava_som->speed( $rideDetails->average_speed ) . '</td>
<td>' . $strava_som->speed( $rideDetails->max_speed ) . '</td>
<td>' . $strava_som->elevation( $rideDetails->total_elevation_gain ) . '</td>
</tr>
<tr class="ride-details-table-units">
<td>' . $strava_som->get_time_label() . '</td>
<td>' . $strava_som->get_time_label() . '</td>
<td>' . $strava_som->get_distance_label() . '</td>
<td>' . $strava_som->get_speed_label() . '</td>
<td>' . $strava_som->get_speed_label() . '</td>
<td>' . $strava_som->get_elevation_label() . '</td>
</tr>
</tbody>
</table>' .
WPStrava_StaticMap::get_image_tag( $rideDetails, $map_height, $map_width ) .
'</div>';
2013-02-03 20:38:55 -06:00
}
} // handler
static function printScripts() {
if (self::$add_script) {
wp_enqueue_style('wp-strava-style');
2014-11-01 22:53:32 -05:00
//wp_print_scripts('google-maps');
//wp_print_scripts('wp-strava-script');
2013-02-03 20:38:55 -06:00
}
}
}
// Initialize short code
2014-09-11 15:56:35 -05:00
WPStrava_RideShortcode::init();