settings = new WPStrava_Settings(); if ( is_admin() ) { $this->settings->hook(); } else { add_action( 'wp_enqueue_scripts', array( $this, 'register_scripts' ) ); } // 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" );' ) ); } public static function get_instance() { if ( ! self::$instance ) { $class = __CLASS__; self::$instance = new $class(); } return self::$instance; } public function __get( $name ) { // On-demand classes. if ( $name == 'rides' ) { return $this->get_rides(); } elseif ( $name == 'routes' ) { return $this->get_routes(); } if ( isset( $this->{$name} ) ) { return $this->{$name}; } return null; } public function get_api( $token = null ) { if ( ! $token ) { $token = $this->settings->get_default_token(); } if ( empty( $this->api[ $token ] ) ) { require_once WPSTRAVA_PLUGIN_DIR . 'lib/API.class.php'; $this->api[$token] = new WPStrava_API( $token ); } return $this->api[$token]; } public function get_rides() { if ( ! $this->rides ) { require_once WPSTRAVA_PLUGIN_DIR . 'lib/Rides.class.php'; $this->rides = new WPStrava_Rides(); } return $this->rides; } public function get_routes() { if ( ! $this->routes ) { require_once WPSTRAVA_PLUGIN_DIR . 'lib/Routes.class.php'; $this->routes = new WPStrava_Routes(); } return $this->routes; } public function register_scripts() { // Register a personalized stylesheet wp_register_style( 'wp-strava-style', WPSTRAVA_PLUGIN_URL . 'css/wp-strava.css' ); } }