From 03609aa76d213b4b797806e361455cb9e4667342 Mon Sep 17 00:00:00 2001 From: _drg_ Date: Thu, 11 Jan 2018 16:25:50 -0600 Subject: [PATCH] Event Player Checklist Sort Options Added option to sort list of players (on the Teams metabox of Events) by Name or Jersey (default). --- .../settings/class-sp-settings-events.php | 25 +++++++++++ includes/sp-api-functions.php | 16 ++++++- modules/sportspress-lazy-loading.php | 43 ++++++++++++++++--- 3 files changed, 76 insertions(+), 8 deletions(-) diff --git a/includes/admin/settings/class-sp-settings-events.php b/includes/admin/settings/class-sp-settings-events.php index cc21b9ca..55a2334b 100644 --- a/includes/admin/settings/class-sp-settings-events.php +++ b/includes/admin/settings/class-sp-settings-events.php @@ -272,6 +272,31 @@ class SP_Settings_Events extends SP_Settings_Page { array( 'type' => 'sectionend', 'id' => 'event_logo_options' ), ), + array( + array( 'title' => __( 'Players', 'sportspress' ), 'type' => 'title', 'desc' => '', 'id' => 'eventplayer_options' ), + ), + + apply_filters( 'sportspress_eventplayer_options', array( + array( + 'title' => __( 'Player Sorting', 'sportspress' ), + 'id' => 'sportspress_event_player_sort', + 'default' => 'jersey', + 'type' => 'radio', + 'options' => array( + 'jersey'=> __( 'Jersey (e.g. "33. John Doe")', 'sportspress' ), + 'name' => __( 'Name (e.g. "John Doe (33)")', 'sportspress' ), + ), + 'desc_tip' => _x( 'When editing an event, this determines how the checklist of players are sorted in the Teams metabox. This does not affect the Box Score section.', 'event player sort setting description', 'sportspress' ), + + ), + + ) ), + + + array( + array( 'type' => 'sectionend', 'id' => 'eventplayer_options' ), + ), + array( array( 'title' => __( 'Event Results', 'sportspress' ), 'type' => 'title', 'desc' => '', 'id' => 'result_options' ), ), diff --git a/includes/sp-api-functions.php b/includes/sp-api-functions.php index 451ba1f5..4f9d2ce5 100644 --- a/includes/sp-api-functions.php +++ b/includes/sp-api-functions.php @@ -344,8 +344,12 @@ function sp_get_player_number( $post = 0 ) { return get_post_meta( $post, 'sp_number', true ); } +function sp_get_player_name( $post = 0 ) { + return apply_filters( 'sportspress_player_name', get_the_title( $post )); +} + function sp_get_player_name_with_number( $post = 0, $prepend = '', $append = '. ' ) { - $name = apply_filters( 'sportspress_player_name', get_the_title( $post )); + $name = sp_get_player_name( $post ); $number = sp_get_player_number( $post ); if ( isset( $number ) && '' !== $number ) { return apply_filters( 'sportspress_player_name_with_number', $prepend . $number . $append . $name); @@ -354,6 +358,16 @@ function sp_get_player_name_with_number( $post = 0, $prepend = '', $append = '. } } +function sp_get_player_name_then_number( $post = 0, $prepend = ' (', $append = ')' ) { + $name = sp_get_player_name( $post ); + $number = sp_get_player_number( $post ); + if ( isset( $number ) && '' !== $number ) { + return apply_filters( 'sportspress_player_name_then_number', $name . $prepend . $number . $append); + } else { + return $name; + } +} + function sp_player_details( $post = 0 ) { sp_get_template( 'player-details.php', array( 'id' => $post ) ); } diff --git a/modules/sportspress-lazy-loading.php b/modules/sportspress-lazy-loading.php index 37f0cb1d..e59b8638 100644 --- a/modules/sportspress-lazy-loading.php +++ b/modules/sportspress-lazy-loading.php @@ -137,11 +137,22 @@ class SportsPress_Lazy_Loading { 'orderby' => 'menu_order', ); - if ( 'sp_player' == $post_type ): - $args['meta_key'] = 'sp_number'; - $args['orderby'] = 'meta_value_num'; - $args['order'] = 'ASC'; - endif; + $player_sort = get_option( 'sportspress_event_player_sort', 'jersey' ); + + if ( 'sp_player' == $post_type ) + { + if( $player_sort == 'name' ) + { + $args['order'] = 'ASC'; + $args['orderby'] = 'title'; + } + else // default 'jersey' + { + $args['meta_key'] = 'sp_number'; + $args['orderby'] = 'meta_value_num'; + $args['order'] = 'ASC'; + } + } $args['meta_query'] = array( array( @@ -198,7 +209,16 @@ class SportsPress_Lazy_Loading {
  • ID ] ); ?> @@ -208,7 +228,16 @@ class SportsPress_Lazy_Loading {