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

75 lines
2.0 KiB
PHP
Raw Normal View History

2013-02-03 20:38:55 -06:00
<?php
require_once WPSTRAVA_PLUGIN_DIR . 'lib/Settings.class.php';
2013-03-31 21:28:49 -05:00
require_once WPSTRAVA_PLUGIN_DIR . 'lib/SOM.class.php';
2013-02-03 20:38:55 -06:00
require_once WPSTRAVA_PLUGIN_DIR . 'lib/LatestRidesWidget.class.php';
2013-03-31 21:28:49 -05:00
require_once WPSTRAVA_PLUGIN_DIR . 'lib/LatestMapWidget.class.php';
2014-09-11 15:56:35 -05:00
require_once WPSTRAVA_PLUGIN_DIR . 'lib/RideShortcode.class.php';
2014-11-01 22:53:32 -05:00
require_once WPSTRAVA_PLUGIN_DIR . 'lib/StaticMap.class.php';
2013-02-03 20:38:55 -06:00
class WPStrava {
private static $instance = null;
private $settings = null;
2017-07-21 16:12:15 -05:00
private $api = array(); // Holds an array of APIs.
private $rides = null;
2013-02-03 20:38:55 -06:00
private function __construct() {
$this->settings = new WPStrava_Settings();
if ( is_admin() ) {
$this->settings->hook();
2014-11-04 21:09:12 -06:00
} else {
add_action( 'wp_enqueue_scripts', array( $this, 'register_scripts' ) );
2013-02-03 20:38:55 -06:00
}
// Register StravaLatestRidesWidget widget
add_action( 'widgets_init', create_function( '', 'return register_widget( "WPStrava_LatestRidesWidget" );' ) );
add_action( 'widgets_init', create_function( '', 'return register_widget( "WPStrava_LatestMapWidget" );' ) );
2013-02-03 20:38:55 -06:00
}
public static function get_instance() {
2014-09-10 23:35:08 -05:00
if ( ! self::$instance ) {
$class = __CLASS__;
self::$instance = new $class();
}
2013-02-03 20:38:55 -06:00
return self::$instance;
}
public function __get( $name ) {
2017-05-10 14:39:00 -05:00
// On-demand classes.
if ( $name == 'rides' ) {
2013-04-07 17:56:07 -05:00
return $this->get_rides();
}
2013-04-07 17:56:07 -05:00
if ( isset( $this->{$name} ) ) {
2014-09-10 23:35:08 -05:00
return $this->{$name};
}
2014-09-10 23:35:08 -05:00
return null;
}
2013-03-31 21:28:49 -05:00
2017-07-21 16:12:15 -05:00
public function get_api( $id = '0' ) {
if ( ! $this->api[$id] ) {
2013-03-31 21:28:49 -05:00
require_once WPSTRAVA_PLUGIN_DIR . 'lib/API.class.php';
2017-07-21 16:12:15 -05:00
$this->api[$id] = new WPStrava_API( $this->settings->get_setting( 'strava_token', $id ) );
2013-03-31 21:28:49 -05:00
}
2017-07-21 16:12:15 -05:00
return $this->api[$id];
2013-03-31 21:28:49 -05:00
}
2013-04-07 17:56:07 -05:00
public function get_rides() {
if ( ! $this->rides ) {
require_once WPSTRAVA_PLUGIN_DIR . 'lib/Rides.class.php';
$this->rides = new WPStrava_Rides();
}
return $this->rides;
}
2014-11-04 21:09:12 -06:00
public function register_scripts() {
// Register a personalized stylesheet
wp_register_style( 'wp-strava-style', WPSTRAVA_PLUGIN_URL . 'css/wp-strava.css' );
}
2017-07-21 16:12:15 -05:00
}