From 16319f6415c3f79b3971bdab45de237a7ff9916b Mon Sep 17 00:00:00 2001 From: Nabil Kadimi Date: Fri, 25 May 2018 15:09:28 +0000 Subject: [PATCH 1/9] Sort leagues, positions and season by sp_order --- .../abstracts/abstract-sp-custom-post.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/includes/abstracts/abstract-sp-custom-post.php b/includes/abstracts/abstract-sp-custom-post.php index d88d2f0d..d30a030d 100644 --- a/includes/abstracts/abstract-sp-custom-post.php +++ b/includes/abstracts/abstract-sp-custom-post.php @@ -5,7 +5,7 @@ * The SportsPress custom post class handles individual post data. * * @class SP_Custom_Post - * @version 0.8 + * @version 2.6.5 * @package SportsPress/Abstracts * @category Abstract Class * @author ThemeBoy @@ -71,4 +71,21 @@ abstract class SP_Custom_Post { public function get_post_data() { return $this->post; } + + /** + * Get terms sorted by order. + * + * @access public + * @param string $taxonomy The taxonomy. + * @return array|false|WP_Error See `get_the_terms()` + */ + public function get_terms_sorted_by_sp_order( $taxonomy ) { + $terms = get_the_terms( $this->ID, $taxonomy ); + if ( $terms ) { + usort( $terms, function( $a, $b ) { + return get_term_meta( $a->term_id, 'sp_order', true ) > get_term_meta( $b->term_id, 'sp_order', true ); + } ); + } + return $terms; + } } From d9bdaa20c83959323506547ab2a92122237bb14a Mon Sep 17 00:00:00 2001 From: Nabil Kadimi Date: Fri, 25 May 2018 15:16:26 +0000 Subject: [PATCH 2/9] Sort leagues, positions and season by sp_order --- includes/class-sp-player.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/includes/class-sp-player.php b/includes/class-sp-player.php index 5ecafa73..17871bf4 100644 --- a/includes/class-sp-player.php +++ b/includes/class-sp-player.php @@ -13,33 +13,33 @@ class SP_Player extends SP_Custom_Post { /** - * Returns positions + * Returns positions sorted by `sp_order`. * * @access public * @return array */ public function positions() { - return get_the_terms( $this->ID, 'sp_position' ); + return $this->get_terms_sorted_by_sp_order( 'sp_position' ); } /** - * Returns leagues + * Returns leagues sorted by `sp_order`. * * @access public * @return array */ public function leagues() { - return get_the_terms( $this->ID, 'sp_league' ); + return $this->get_terms_sorted_by_sp_order( 'sp_league' ); } /** - * Returns seasons + * Returns seasons sorted by `sp_order`. * * @access public * @return array */ public function seasons() { - return get_the_terms( $this->ID, 'sp_season' ); + return $this->get_terms_sorted_by_sp_order( 'sp_season' ); } /** From b13a9c4db4af1dcdc10a16579f32857a1a17313d Mon Sep 17 00:00:00 2001 From: Nabil Kadimi Date: Sat, 26 May 2018 15:39:02 +0000 Subject: [PATCH 3/9] Refactor --- .../abstracts/abstract-sp-custom-post.php | 4 +--- includes/class-sp-player.php | 7 ++++--- includes/sp-core-functions.php | 20 +++++++++++++++++++ 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/includes/abstracts/abstract-sp-custom-post.php b/includes/abstracts/abstract-sp-custom-post.php index d30a030d..2abe5dc9 100644 --- a/includes/abstracts/abstract-sp-custom-post.php +++ b/includes/abstracts/abstract-sp-custom-post.php @@ -82,9 +82,7 @@ abstract class SP_Custom_Post { public function get_terms_sorted_by_sp_order( $taxonomy ) { $terms = get_the_terms( $this->ID, $taxonomy ); if ( $terms ) { - usort( $terms, function( $a, $b ) { - return get_term_meta( $a->term_id, 'sp_order', true ) > get_term_meta( $b->term_id, 'sp_order', true ); - } ); + usort( $terms, 'sp_sort_terms' ); } return $terms; } diff --git a/includes/class-sp-player.php b/includes/class-sp-player.php index 17871bf4..fa58d0d4 100644 --- a/includes/class-sp-player.php +++ b/includes/class-sp-player.php @@ -123,10 +123,11 @@ class SP_Player extends SP_Custom_Post { ), ), ); - $seasons = (array)get_the_terms( $this->ID, 'sp_season', $args ); + $seasons = (array) $this->get_terms_sorted_by_sp_order( 'sp_season' ); + $leagues = (array) sp_array_value( (array)get_post_meta( $this->ID, 'sp_leagues', true ), $league_id ); + uksort( $leagues, 'sp_sort_terms' ); $metrics = (array)get_post_meta( $this->ID, 'sp_metrics', true ); $stats = (array)get_post_meta( $this->ID, 'sp_statistics', true ); - $leagues = (array) sp_array_value( (array)get_post_meta( $this->ID, 'sp_leagues', true ), $league_id ); $manual_columns = 'manual' == get_option( 'sportspress_player_columns', 'auto' ) ? true : false; $season_ids = array_filter(wp_list_pluck( $seasons, 'term_id' )); @@ -136,7 +137,7 @@ class SP_Player extends SP_Custom_Post { } $leagues = array_replace( $season_order, $leagues ); - + // Get performance labels $args = array( 'post_type' => array( 'sp_performance' ), diff --git a/includes/sp-core-functions.php b/includes/sp-core-functions.php index 6b7740fe..859d2f9a 100644 --- a/includes/sp-core-functions.php +++ b/includes/sp-core-functions.php @@ -1463,6 +1463,26 @@ if ( !function_exists( 'sp_sort_table_teams' ) ) { } } +if ( ! function_exists( 'sp_sort_terms' ) ) { + + /** + * Sorts terms by `sp_order`. + * + * @param int|object $a Term ID or term. + * @param int|object $b Term ID or term. + * @return int Sorting order. + */ + function sp_sort_terms( $a, $b ) { + if ( is_int( $a ) ) { + $a = get_term( $a ); + } + if ( is_int( $b ) ) { + $b = get_term( $b ); + } + return get_term_meta( $a->term_id, 'sp_order', true ) > get_term_meta( $b->term_id, 'sp_order', true ); + } +} + if ( !function_exists( 'sp_get_next_event' ) ) { function sp_get_next_event( $args = array() ) { $options = array( From 68e205e99b118e65fcf6bae8785efdaa0d04cc55 Mon Sep 17 00:00:00 2001 From: Nabil Kadimi Date: Sat, 26 May 2018 15:40:04 +0000 Subject: [PATCH 4/9] Refactor --- includes/class-sp-player.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/class-sp-player.php b/includes/class-sp-player.php index fa58d0d4..166b86f3 100644 --- a/includes/class-sp-player.php +++ b/includes/class-sp-player.php @@ -124,10 +124,10 @@ class SP_Player extends SP_Custom_Post { ), ); $seasons = (array) $this->get_terms_sorted_by_sp_order( 'sp_season' ); - $leagues = (array) sp_array_value( (array)get_post_meta( $this->ID, 'sp_leagues', true ), $league_id ); - uksort( $leagues, 'sp_sort_terms' ); $metrics = (array)get_post_meta( $this->ID, 'sp_metrics', true ); $stats = (array)get_post_meta( $this->ID, 'sp_statistics', true ); + $leagues = (array) sp_array_value( (array)get_post_meta( $this->ID, 'sp_leagues', true ), $league_id ); + uksort( $leagues, 'sp_sort_terms' ); $manual_columns = 'manual' == get_option( 'sportspress_player_columns', 'auto' ) ? true : false; $season_ids = array_filter(wp_list_pluck( $seasons, 'term_id' )); From 18f12bb32ff7c722cc6de37f2a44213abd282b55 Mon Sep 17 00:00:00 2001 From: Nabil Kadimi Date: Sat, 26 May 2018 15:43:53 +0000 Subject: [PATCH 5/9] Sort leagues in player editing page --- .../meta-boxes/class-sp-meta-box-player-statistics.php | 1 + 1 file changed, 1 insertion(+) diff --git a/includes/admin/post-types/meta-boxes/class-sp-meta-box-player-statistics.php b/includes/admin/post-types/meta-boxes/class-sp-meta-box-player-statistics.php index 1becb809..60ed1914 100644 --- a/includes/admin/post-types/meta-boxes/class-sp-meta-box-player-statistics.php +++ b/includes/admin/post-types/meta-boxes/class-sp-meta-box-player-statistics.php @@ -34,6 +34,7 @@ class SP_Meta_Box_Player_Statistics { ), ); $leagues = get_the_terms( $post->ID, 'sp_league', $args ); + usort( $leagues, 'sp_sort_terms' ); $league_num = sizeof( $leagues ); $sections = get_option( 'sportspress_player_performance_sections', -1 ); $show_career_totals = 'yes' === get_option( 'sportspress_player_show_career_total', 'no' ) ? true : false; From 6f6d77e1267b9ce61eca1f5e042e2530c8975dc9 Mon Sep 17 00:00:00 2001 From: Nabil Kadimi Date: Sat, 26 May 2018 15:45:45 +0000 Subject: [PATCH 6/9] Refactor --- .../class-sp-meta-box-player-statistics.php | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/includes/admin/post-types/meta-boxes/class-sp-meta-box-player-statistics.php b/includes/admin/post-types/meta-boxes/class-sp-meta-box-player-statistics.php index 60ed1914..7500e4fd 100644 --- a/includes/admin/post-types/meta-boxes/class-sp-meta-box-player-statistics.php +++ b/includes/admin/post-types/meta-boxes/class-sp-meta-box-player-statistics.php @@ -20,21 +20,7 @@ class SP_Meta_Box_Player_Statistics { */ public static function output( $post ) { $player = new SP_Player( $post ); - $args = array( - 'meta_query' => array( - 'relation' => 'OR', - array( - 'key' => 'sp_order', - 'compare' => 'NOT EXISTS', - ), - array( - 'key' => 'sp_order', - 'compare' => 'EXISTS', - ), - ), - ); - $leagues = get_the_terms( $post->ID, 'sp_league', $args ); - usort( $leagues, 'sp_sort_terms' ); + $leagues = $player->get_terms_sorted_by_sp_order( 'sp_league' ); $league_num = sizeof( $leagues ); $sections = get_option( 'sportspress_player_performance_sections', -1 ); $show_career_totals = 'yes' === get_option( 'sportspress_player_show_career_total', 'no' ) ? true : false; From 156dafedec2eb131279b31b0713b309b5e3616dd Mon Sep 17 00:00:00 2001 From: Nabil Kadimi Date: Sat, 26 May 2018 15:46:22 +0000 Subject: [PATCH 7/9] Update file version --- .../meta-boxes/class-sp-meta-box-player-statistics.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/admin/post-types/meta-boxes/class-sp-meta-box-player-statistics.php b/includes/admin/post-types/meta-boxes/class-sp-meta-box-player-statistics.php index 7500e4fd..1cd4fc5e 100644 --- a/includes/admin/post-types/meta-boxes/class-sp-meta-box-player-statistics.php +++ b/includes/admin/post-types/meta-boxes/class-sp-meta-box-player-statistics.php @@ -5,7 +5,7 @@ * @author ThemeBoy * @category Admin * @package SportsPress/Admin/Meta_Boxes - * @version 2.6 + * @version 2.6.5 */ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly @@ -20,7 +20,7 @@ class SP_Meta_Box_Player_Statistics { */ public static function output( $post ) { $player = new SP_Player( $post ); - $leagues = $player->get_terms_sorted_by_sp_order( 'sp_league' ); + $leagues = $player->get_terms_sorted_by_sp_order( 'sp_0' ); $league_num = sizeof( $leagues ); $sections = get_option( 'sportspress_player_performance_sections', -1 ); $show_career_totals = 'yes' === get_option( 'sportspress_player_show_career_total', 'no' ) ? true : false; From d6d818aafb879bcdc6dd594b932d4e0bc70c7810 Mon Sep 17 00:00:00 2001 From: Nabil Kadimi Date: Sat, 26 May 2018 15:53:01 +0000 Subject: [PATCH 8/9] Fix type --- .../meta-boxes/class-sp-meta-box-player-statistics.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/admin/post-types/meta-boxes/class-sp-meta-box-player-statistics.php b/includes/admin/post-types/meta-boxes/class-sp-meta-box-player-statistics.php index 1cd4fc5e..f46dd5e1 100644 --- a/includes/admin/post-types/meta-boxes/class-sp-meta-box-player-statistics.php +++ b/includes/admin/post-types/meta-boxes/class-sp-meta-box-player-statistics.php @@ -20,7 +20,7 @@ class SP_Meta_Box_Player_Statistics { */ public static function output( $post ) { $player = new SP_Player( $post ); - $leagues = $player->get_terms_sorted_by_sp_order( 'sp_0' ); + $leagues = $player->get_terms_sorted_by_sp_order( 'sp_league' ); $league_num = sizeof( $leagues ); $sections = get_option( 'sportspress_player_performance_sections', -1 ); $show_career_totals = 'yes' === get_option( 'sportspress_player_show_career_total', 'no' ) ? true : false; From 9f04d0fc3d0123fb123b1517a18e7b5b29008050 Mon Sep 17 00:00:00 2001 From: Nabil Kadimi Date: Sat, 26 May 2018 15:54:25 +0000 Subject: [PATCH 9/9] Remove dead code --- includes/class-sp-player.php | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/includes/class-sp-player.php b/includes/class-sp-player.php index 166b86f3..5240860d 100644 --- a/includes/class-sp-player.php +++ b/includes/class-sp-player.php @@ -110,19 +110,6 @@ class SP_Player extends SP_Custom_Post { * @return array */ public function data( $league_id, $admin = false, $section = -1 ) { - $args = array( - 'meta_query' => array( - 'relation' => 'OR', - array( - 'key' => 'sp_order', - 'compare' => 'NOT EXISTS', - ), - array( - 'key' => 'sp_order', - 'compare' => 'EXISTS', - ), - ), - ); $seasons = (array) $this->get_terms_sorted_by_sp_order( 'sp_season' ); $metrics = (array)get_post_meta( $this->ID, 'sp_metrics', true ); $stats = (array)get_post_meta( $this->ID, 'sp_statistics', true );