Calculate subset results

This commit is contained in:
Brian Miyaji
2015-09-17 17:06:26 +10:00
parent af7dea5ac0
commit cb2bd663e1
3 changed files with 42 additions and 8 deletions

View File

@@ -163,7 +163,7 @@ class SP_League_Table extends SP_Custom_Post{
'numberposts' => -1,
'posts_per_page' => -1,
'orderby' => 'post_date',
'order' => 'DESC',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'sp_format',
@@ -196,6 +196,8 @@ class SP_League_Table extends SP_Custom_Post{
$events = get_posts( $args );
$e = 0;
// Event loop
foreach ( $events as $event ):
@@ -265,9 +267,11 @@ class SP_League_Table extends SP_Custom_Post{
else:
if ( array_key_exists( $team_id, $totals ) && is_array( $totals[ $team_id ] ) && array_key_exists( $key . 'for', $totals[ $team_id ] ) ):
$totals[ $team_id ][ $key . 'for' ] += $value;
$totals[ $team_id ][ $key . 'for' . ( $e + 1 ) ] = $value;
foreach( $results as $other_team_id => $other_result ):
if ( $other_team_id != $team_id && array_key_exists( $key . 'against', $totals[ $team_id ] ) ):
$totals[ $team_id ][ $key . 'against' ] += sp_array_value( $other_result, $key, 0 );
$totals[ $team_id ][ $key . 'against' . ( $e + 1 ) ] = sp_array_value( $other_result, $key, 0 );
endif;
endforeach;
endif;
@@ -279,6 +283,8 @@ class SP_League_Table extends SP_Custom_Post{
endforeach;
$e++;
endforeach;
foreach ( $streaks as $team_id => $streak ):

View File

@@ -92,7 +92,7 @@ class SP_Player_List extends SP_Custom_Post {
);
endif;
if ( $team ):
if ( $team && apply_filters( 'sportspress_has_teams', true ) ):
$args['meta_query'] = array(
array(
'key' => 'sp_team',
@@ -158,8 +158,7 @@ class SP_Player_List extends SP_Custom_Post {
endforeach;
foreach ( $result_labels as $key => $value ):
$totals[ $player_id ][ $key . 'for' ] = 0;
$totals[ $player_id ][ $key . 'against' ] = 0;
$totals[ $player_id ][ $key . 'for' ] = $totals[ $player_id ][ $key . 'against' ] = 0;
endforeach;
// Get metrics
@@ -221,7 +220,7 @@ class SP_Player_List extends SP_Custom_Post {
$events = get_posts( $args );
// Event loop
foreach ( $events as $event ):
foreach ( $events as $i => $event ):
$results = (array)get_post_meta( $event->ID, 'sp_results', true );
$team_performance = get_post_meta( $event->ID, 'sp_players', true );
$minutes = get_post_meta( $event->ID, 'sp_minutes', true );
@@ -338,9 +337,14 @@ class SP_Player_List extends SP_Custom_Post {
endforeach;
endif;
else:
// Add to total
$value = sp_array_value( $totals[ $player_id ], $result_slug . 'for', 0 );
$value += $team_result;
$totals[ $player_id ][ $result_slug . 'for' ] = $value;
// Add subset
$totals[ $player_id ][ $result_slug . 'for' . ( $i + 1 ) ] = $team_result;
endif;
endforeach;
@@ -349,15 +353,21 @@ class SP_Player_List extends SP_Custom_Post {
foreach ( $results as $team_results ):
unset( $team_results['outcome'] );
foreach ( $team_results as $result_slug => $team_result ):
// Add to total
$value = sp_array_value( $totals[ $player_id ], $result_slug . 'against', 0 );
$value += $team_result;
$totals[ $player_id ][ $result_slug . 'against' ] = $value;
// Add subset
$totals[ $player_id ][ $result_slug . 'against' . ( $i + 1 ) ] = $team_result;
endforeach;
endforeach;
endif;
endif;
endforeach; endif;
endforeach; endif;
$i++;
endforeach;
foreach ( $streaks as $player_id => $streak ):
@@ -501,7 +511,7 @@ class SP_Player_List extends SP_Custom_Post {
foreach( $this->columns as $key ):
if ( $key == 'number' ):
$labels[ $key ] = '#';
elseif ( $key == 'team' ):
elseif ( $key == 'team' && apply_filters( 'sportspress_has_teams', true ) ):
$labels[ $key ] = __( 'Team', 'sportspress' );
elseif ( array_key_exists( $key, $columns ) ):
$labels[ $key ] = $columns[ $key ];
@@ -520,7 +530,7 @@ class SP_Player_List extends SP_Custom_Post {
$labels = array();
if ( in_array( 'number', $this->columns ) ) $labels['number'] = '#';
$labels['name'] = __( 'Player', 'sportspress' );
if ( in_array( 'team', $this->columns ) ) $labels['team'] = __( 'Team', 'sportspress' );
if ( in_array( 'team', $this->columns ) && apply_filters( 'sportspress_has_teams', true ) ) $labels['team'] = __( 'Team', 'sportspress' );
$merged[0] = array_merge( $labels, $columns );
return $merged;

View File

@@ -93,6 +93,9 @@ class SP_Player extends SP_Custom_Post {
// Get labels from outcome variables
$outcome_labels = (array)sp_get_var_labels( 'sp_outcome' );
// Get labels from result variables
$result_labels = (array)sp_get_var_labels( 'sp_result' );
// Generate array of all season ids and season names
$div_ids = array();
$season_names = array();
@@ -129,6 +132,10 @@ class SP_Player extends SP_Custom_Post {
$totals[ $key ] = 0;
endforeach;
foreach ( $result_labels as $key => $value ):
$totals[ $key . 'for' ] = $totals[ $key . 'against' ] = 0;
endforeach;
// Initialize streaks counter
$streak = array( 'name' => '', 'count' => 0, 'fire' => 1 );
@@ -186,7 +193,7 @@ class SP_Player extends SP_Custom_Post {
$events = get_posts( $args );
// Event loop
foreach( $events as $event ):
foreach( $events as $i => $event ):
$results = (array)get_post_meta( $event->ID, 'sp_results', true );
$team_performance = (array)get_post_meta( $event->ID, 'sp_players', true );
$minutes = get_post_meta( $event->ID, 'sp_minutes', true );
@@ -300,9 +307,14 @@ class SP_Player extends SP_Custom_Post {
endforeach;
endif;
else:
// Add to total
$value = sp_array_value( $totals, $result_slug . 'for', 0 );
$value += $team_result;
$totals[ $result_slug . 'for' ] = $value;
// Add subset
$totals[ $result_slug . 'for' . ( $i + 1 ) ] = $team_result;
endif;
endforeach;
@@ -311,14 +323,20 @@ class SP_Player extends SP_Custom_Post {
foreach ( $results as $team_results ):
unset( $team_results['outcome'] );
foreach ( $team_results as $result_slug => $team_result ):
// Add to total
$value = sp_array_value( $totals, $result_slug . 'against', 0 );
$value += $team_result;
$totals[ $result_slug . 'against' ] = $value;
// Add subset
$totals[ $result_slug . 'against' . ( $i + 1 ) ] = $team_result;
endforeach;
endforeach;
endif;
endif;
endforeach;
$i++;
endforeach;
// Compile streaks counter and add to totals