From c17e47fd38613877aa6236fc2b83d11889afba45 Mon Sep 17 00:00:00 2001 From: Brian Miyaji Date: Sun, 24 Aug 2014 00:19:55 +1000 Subject: [PATCH] Display total statistics per player --- .../class-sp-meta-box-player-statistics.php | 100 +++++++++--------- includes/class-sp-player-list.php | 29 +++-- includes/class-sp-player.php | 32 ++++-- 3 files changed, 91 insertions(+), 70 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 7598d547..cfbb2b14 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 @@ -19,27 +19,24 @@ class SP_Meta_Box_Player_Statistics { * Output the metabox */ public static function output( $post ) { + $player = new SP_Player( $post ); $leagues = get_the_terms( $post->ID, 'sp_league' ); $league_num = sizeof( $leagues ); // Loop through statistics for each league if ( $leagues ): foreach ( $leagues as $league ): - - if ( $league_num > 1 ): - ?> -

name; ?>

- +

name; ?>

+ data( $league->term_id, true ); self::table( $post->ID, $league->term_id, $columns, $data, $placeholders, $merged, $seasons_teams ); - endforeach; else: - - printf( __( 'Select %s', 'sportspress' ), __( 'Leagues', 'sportspress' ) ); - - endif; + endforeach; endif; + ?> +

+ data( 0, true ); + self::table( $post->ID, 0, $columns, $data, $placeholders, $merged, $seasons_teams ); } /** @@ -61,10 +58,12 @@ class SP_Meta_Box_Player_Statistics { - + + + $label ): if ( $key == 'team' ) continue; ?> @@ -74,44 +73,49 @@ class SP_Meta_Box_Player_Statistics { $div_stats ): - if ( !$div_id || $div_id == 'statistics' ) continue; + if ( $div_id === 'statistics' ) continue; $div = get_term( $div_id, 'sp_season' ); ?> - - name; ?> - 'sp_team', - 'name' => 'sp_leagues[' . $league_id . '][' . $div_id . ']', - 'show_option_none' => __( '— None —', 'sportspress' ), - 'sort_order' => 'ASC', - 'sort_column' => 'menu_order', - 'selected' => $value, - 'values' => 'ID', - 'include' => $teams, - 'tax_query' => array( - 'relation' => 'AND', - array( - 'taxonomy' => 'sp_league', - 'terms' => $league_id, - 'field' => 'id', - ), - array( - 'taxonomy' => 'sp_season', - 'terms' => $div_id, - 'field' => 'id', - ), - ), - ); - if ( ! sp_dropdown_pages( $args ) ): - _e( 'No results found.', 'sportspress' ); - endif; + if ( 'WP_Error' == get_class( $div ) ) _e( 'Total', 'sportspress' ); + else echo $div->name; ?> + + + 'sp_team', + 'name' => 'sp_leagues[' . $league_id . '][' . $div_id . ']', + 'show_option_none' => __( '— None —', 'sportspress' ), + 'sort_order' => 'ASC', + 'sort_column' => 'menu_order', + 'selected' => $value, + 'values' => 'ID', + 'include' => $teams, + 'tax_query' => array( + 'relation' => 'AND', + array( + 'taxonomy' => 'sp_league', + 'terms' => $league_id, + 'field' => 'id', + ), + array( + 'taxonomy' => 'sp_season', + 'terms' => $div_id, + 'field' => 'id', + ), + ), + ); + if ( ! sp_dropdown_pages( $args ) ): + _e( 'No results found.', 'sportspress' ); + endif; + ?> + + $label ): if ( $column == 'team' ) continue; ?> 'ASC', 'tax_query' => array( 'relation' => 'AND', - array( - 'taxonomy' => 'sp_league', - 'field' => 'id', - 'terms' => $league_id - ), - array( - 'taxonomy' => 'sp_season', - 'field' => 'id', - 'terms' => $div_id - ) - ) + ), ); + + if ( $league_id ): + $args['tax_query'][] = array( + 'taxonomy' => 'sp_league', + 'field' => 'id', + 'terms' => $league_id + ); + endif; + + if ( $league_id ): + $args['tax_query'][] = array( + 'taxonomy' => 'sp_season', + 'field' => 'id', + 'terms' => $div_id + ); + endif; + $events = get_posts( $args ); // Event loop diff --git a/includes/class-sp-player.php b/includes/class-sp-player.php index 8ccc7951..43823a72 100644 --- a/includes/class-sp-player.php +++ b/includes/class-sp-player.php @@ -83,6 +83,9 @@ class SP_Player extends SP_Custom_Post { endif; endforeach; + $div_ids[] = 0; + $season_names[0] = __( 'Total', 'sportspress' ); + $data = array(); // Get all seasons populated with data where available @@ -138,18 +141,25 @@ class SP_Player extends SP_Custom_Post { ), 'tax_query' => array( 'relation' => 'AND', - array( - 'taxonomy' => 'sp_league', - 'field' => 'id', - 'terms' => $league_id - ), - array( - 'taxonomy' => 'sp_season', - 'field' => 'id', - 'terms' => $div_id - ), - ) + ), ); + + if ( $league_id ): + $args['tax_query'][] = array( + 'taxonomy' => 'sp_league', + 'field' => 'id', + 'terms' => $league_id + ); + endif; + + if ( $div_id ): + $args['tax_query'][] = array( + 'taxonomy' => 'sp_season', + 'field' => 'id', + 'terms' => $div_id + ); + endif; + $events = get_posts( $args ); // Event loop