'LatestActivitiesWidget', 'description' => __( 'Will show 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 widget 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( 'client_id' => isset( $instance['client_id'] ) ? $instance['client_id'] : null, 'strava_club_id' => isset( $instance['strava_club_id'] ) ? $instance['strava_club_id'] : null, 'quantity' => isset( $instance['quantity'] ) ? $instance['quantity'] : null, ); // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped -- Widget OK. echo $args['before_widget']; if ( $title ) { echo $args['before_title'] . $title . $args['after_title']; } echo WPStrava_LatestActivities::get_activities_html( $activities_args ); echo $args['after_widget']; // phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped } /** @see WP_Widget::update */ public function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = wp_strip_all_tags( $new_instance['title'] ); $instance['client_id'] = wp_strip_all_tags( $new_instance['client_id'] ); $instance['strava_club_id'] = wp_strip_all_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_ids = WPStrava::get_instance()->settings->get_all_ids(); $client_id = isset( $instance['client_id'] ) ? esc_attr( $instance['client_id'] ) : WPStrava::get_instance()->settings->get_default_id(); $strava_club_id = isset( $instance['strava_club_id'] ) ? esc_attr( $instance['strava_club_id'] ) : ''; $quantity = isset( $instance['quantity'] ) ? absint( $instance['quantity'] ) : 5; ?>