Add sendoff option to player performance variables
This commit is contained in:
@@ -48,6 +48,10 @@ class SP_Meta_Box_Performance_Details extends SP_Meta_Box_Config {
|
|||||||
if ( '' === $timed ) {
|
if ( '' === $timed ) {
|
||||||
$timed = true;
|
$timed = true;
|
||||||
}
|
}
|
||||||
|
$sendoff = get_post_meta( $post->ID, 'sp_sendoff', true );
|
||||||
|
if ( '' === $sendoff ) {
|
||||||
|
$sendoff = false;
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
<p><strong><?php _e( 'Variable', 'sportspress' ); ?></strong></p>
|
<p><strong><?php _e( 'Variable', 'sportspress' ); ?></strong></p>
|
||||||
<p>
|
<p>
|
||||||
@@ -106,6 +110,26 @@ class SP_Meta_Box_Performance_Details extends SP_Meta_Box_Config {
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="sp_sendoffdiv">
|
||||||
|
<p>
|
||||||
|
<strong><?php _e( 'Send Off', 'sportspress' ); ?></strong>
|
||||||
|
<i class="dashicons dashicons-editor-help sp-desc-tip" title="<?php _e( "Don't count minutes after?", 'sportspress' ); ?>"></i>
|
||||||
|
</p>
|
||||||
|
<ul class="sp-sendoff-selector">
|
||||||
|
<li>
|
||||||
|
<label class="selectit">
|
||||||
|
<input name="sp_sendoff" id="sp_sendoff_yes" type="radio" value="1" <?php checked( $sendoff ); ?>>
|
||||||
|
<?php _e( 'Yes', 'sportspress' ); ?>
|
||||||
|
</label>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<label class="selectit">
|
||||||
|
<input name="sp_sendoff" id="sp_sendoff_no" type="radio" value="0" <?php checked( ! $sendoff ); ?>>
|
||||||
|
<?php _e( 'No', 'sportspress' ); ?>
|
||||||
|
</label>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
<?php
|
<?php
|
||||||
if ( 'auto' === get_option( 'sportspress_player_columns', 'auto' ) ) {
|
if ( 'auto' === get_option( 'sportspress_player_columns', 'auto' ) ) {
|
||||||
$visible = get_post_meta( $post->ID, 'sp_visible', true );
|
$visible = get_post_meta( $post->ID, 'sp_visible', true );
|
||||||
@@ -145,6 +169,7 @@ class SP_Meta_Box_Performance_Details extends SP_Meta_Box_Config {
|
|||||||
update_post_meta( $post_id, 'sp_format', sp_array_value( $_POST, 'sp_format', 'number' ) );
|
update_post_meta( $post_id, 'sp_format', sp_array_value( $_POST, 'sp_format', 'number' ) );
|
||||||
update_post_meta( $post_id, 'sp_precision', sp_array_value( $_POST, 'sp_precision', 0 ) );
|
update_post_meta( $post_id, 'sp_precision', sp_array_value( $_POST, 'sp_precision', 0 ) );
|
||||||
update_post_meta( $post_id, 'sp_timed', sp_array_value( $_POST, 'sp_timed', 0 ) );
|
update_post_meta( $post_id, 'sp_timed', sp_array_value( $_POST, 'sp_timed', 0 ) );
|
||||||
|
update_post_meta( $post_id, 'sp_sendoff', sp_array_value( $_POST, 'sp_sendoff', 0 ) );
|
||||||
if ( 'auto' === get_option( 'sportspress_player_columns', 'auto' ) ) {
|
if ( 'auto' === get_option( 'sportspress_player_columns', 'auto' ) ) {
|
||||||
update_post_meta( $post_id, 'sp_visible', sp_array_value( $_POST, 'sp_visible', 1 ) );
|
update_post_meta( $post_id, 'sp_visible', sp_array_value( $_POST, 'sp_visible', 1 ) );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -147,6 +147,85 @@ class SP_Player_List extends SP_Custom_Post {
|
|||||||
$last5s = array();
|
$last5s = array();
|
||||||
$last10s = array();
|
$last10s = array();
|
||||||
|
|
||||||
|
$args = array(
|
||||||
|
'post_type' => array( 'sp_performance', 'sp_metric', 'sp_statistic' ),
|
||||||
|
'numberposts' => -1,
|
||||||
|
'posts_per_page' => -1,
|
||||||
|
'orderby' => 'menu_order',
|
||||||
|
'order' => 'ASC',
|
||||||
|
'meta_query' => array(
|
||||||
|
'relation' => 'OR',
|
||||||
|
array(
|
||||||
|
'key' => 'sp_format',
|
||||||
|
'value' => 'number',
|
||||||
|
'compare' => 'NOT EXISTS',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'key' => 'sp_format',
|
||||||
|
'value' => array( 'equation', 'text' ),
|
||||||
|
'compare' => 'NOT IN',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
$stats = get_posts( $args );
|
||||||
|
|
||||||
|
$formats = array();
|
||||||
|
$sendoffs = array();
|
||||||
|
$data = array();
|
||||||
|
$merged = array();
|
||||||
|
$column_order = array();
|
||||||
|
$ordered_columns = array();
|
||||||
|
|
||||||
|
if ( $stats ):
|
||||||
|
|
||||||
|
foreach ( $stats as $stat ):
|
||||||
|
|
||||||
|
// Get post meta
|
||||||
|
$meta = get_post_meta( $stat->ID );
|
||||||
|
|
||||||
|
// Add equation to object
|
||||||
|
if ( $stat->post_type == 'sp_metric' ):
|
||||||
|
$stat->equation = null;
|
||||||
|
else:
|
||||||
|
$stat->equation = sp_array_value( sp_array_value( $meta, 'sp_equation', array() ), 0, 0 );
|
||||||
|
endif;
|
||||||
|
|
||||||
|
// Add precision to object
|
||||||
|
$stat->precision = sp_array_value( sp_array_value( $meta, 'sp_precision', array() ), 0, 0 ) + 0;
|
||||||
|
|
||||||
|
// Add column name to columns
|
||||||
|
$columns[ $stat->post_name ] = $stat->post_title;
|
||||||
|
|
||||||
|
// Add format
|
||||||
|
$format = get_post_meta( $stat->ID, 'sp_format', true );
|
||||||
|
if ( '' === $format ) {
|
||||||
|
$format = 'number';
|
||||||
|
}
|
||||||
|
$formats[ $stat->post_name ] = $format;
|
||||||
|
|
||||||
|
// Add sendoffs
|
||||||
|
$sendoff = get_post_meta( $stat->ID, 'sp_sendoff', true );
|
||||||
|
if ( $sendoff ) {
|
||||||
|
$sendoffs[] = $stat->post_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
$column_order[] = $stat->post_name;
|
||||||
|
|
||||||
|
endforeach;
|
||||||
|
|
||||||
|
endif;
|
||||||
|
|
||||||
|
foreach ( $column_order as $slug ):
|
||||||
|
|
||||||
|
if ( ! in_array( $slug, $this->columns ) ) continue;
|
||||||
|
|
||||||
|
$ordered_columns[] = $slug;
|
||||||
|
|
||||||
|
endforeach;
|
||||||
|
|
||||||
|
$diff = array_diff( $this->columns, $ordered_columns );
|
||||||
|
$this->columns = array_merge( $diff, $ordered_columns );
|
||||||
|
|
||||||
foreach ( $player_ids as $player_id ):
|
foreach ( $player_ids as $player_id ):
|
||||||
if ( ! $player_id )
|
if ( ! $player_id )
|
||||||
continue;
|
continue;
|
||||||
@@ -332,7 +411,19 @@ class SP_Player_List extends SP_Custom_Post {
|
|||||||
// Adjust for substitution time
|
// Adjust for substitution time
|
||||||
if ( sp_array_value( $player_performance, 'status' ) === 'sub' ):
|
if ( sp_array_value( $player_performance, 'status' ) === 'sub' ):
|
||||||
$totals[ $player_id ]['eventminutes'] -= sp_array_value( sp_array_value( sp_array_value( sp_array_value( $timeline, $team_id ), $player_id ), 'sub' ), 0, 0 );
|
$totals[ $player_id ]['eventminutes'] -= sp_array_value( sp_array_value( sp_array_value( sp_array_value( $timeline, $team_id ), $player_id ), 'sub' ), 0, 0 );
|
||||||
|
|
||||||
|
$timeline_performance = sp_array_value( sp_array_value( $timeline, $team_id, array() ), $player_id, array() );
|
||||||
|
if ( empty( $timeline_performance ) ) continue;
|
||||||
|
foreach ( $sendoffs as $sendoff_key ):
|
||||||
|
if ( ! array_key_exists( $sendoff_key, $timeline_performance ) ) continue;
|
||||||
|
$sendoff_times = sp_array_value( sp_array_value( sp_array_value( $timeline, $team_id ), $player_id ), $sendoff_key );
|
||||||
|
$sendoff_times = array_filter( $sendoff_times );
|
||||||
|
$sendoff_time = end( $sendoff_times );
|
||||||
|
if ( ! $sendoff_time ) $sendoff_time = 0;
|
||||||
|
$totals[ $player_id ]['eventminutes'] += $sendoff_time - $minutes;
|
||||||
|
endforeach;
|
||||||
else:
|
else:
|
||||||
|
$subbed_out = false;
|
||||||
foreach ( $timeline as $timeline_team => $timeline_players ):
|
foreach ( $timeline as $timeline_team => $timeline_players ):
|
||||||
if ( ! is_array( $timeline_players ) ) continue;
|
if ( ! is_array( $timeline_players ) ) continue;
|
||||||
foreach ( $timeline_players as $timeline_player => $timeline_performance ):
|
foreach ( $timeline_players as $timeline_player => $timeline_performance ):
|
||||||
@@ -340,9 +431,22 @@ class SP_Player_List extends SP_Custom_Post {
|
|||||||
$substitution_time = sp_array_value( sp_array_value( sp_array_value( sp_array_value( $timeline, $team_id ), $timeline_player ), 'sub' ), 0, 0 );
|
$substitution_time = sp_array_value( sp_array_value( sp_array_value( sp_array_value( $timeline, $team_id ), $timeline_player ), 'sub' ), 0, 0 );
|
||||||
if ( $substitution_time ):
|
if ( $substitution_time ):
|
||||||
$totals[ $player_id ]['eventminutes'] += $substitution_time - $minutes;
|
$totals[ $player_id ]['eventminutes'] += $substitution_time - $minutes;
|
||||||
|
$subbed_out = true;
|
||||||
endif;
|
endif;
|
||||||
endif;
|
endif;
|
||||||
endforeach;
|
endforeach;
|
||||||
|
|
||||||
|
if ( $subbed_out ) continue;
|
||||||
|
$timeline_performance = sp_array_value( $timeline_players, $player_id, array() );
|
||||||
|
if ( empty( $timeline_performance ) ) continue;
|
||||||
|
foreach ( $sendoffs as $sendoff_key ):
|
||||||
|
if ( ! array_key_exists( $sendoff_key, $timeline_performance ) ) continue;
|
||||||
|
$sendoff_times = sp_array_value( sp_array_value( sp_array_value( $timeline, $team_id ), $player_id ), $sendoff_key );
|
||||||
|
$sendoff_times = array_filter( $sendoff_times );
|
||||||
|
$sendoff_time = end( $sendoff_times );
|
||||||
|
if ( ! $sendoff_time ) $sendoff_time = 0;
|
||||||
|
$totals[ $player_id ]['eventminutes'] += $sendoff_time - $minutes;
|
||||||
|
endforeach;
|
||||||
endforeach;
|
endforeach;
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
@@ -457,78 +561,6 @@ class SP_Player_List extends SP_Custom_Post {
|
|||||||
$totals[ $player_id ]['last10'] = $last10;
|
$totals[ $player_id ]['last10'] = $last10;
|
||||||
endforeach;
|
endforeach;
|
||||||
|
|
||||||
$args = array(
|
|
||||||
'post_type' => array( 'sp_performance', 'sp_metric', 'sp_statistic' ),
|
|
||||||
'numberposts' => -1,
|
|
||||||
'posts_per_page' => -1,
|
|
||||||
'orderby' => 'menu_order',
|
|
||||||
'order' => 'ASC',
|
|
||||||
'meta_query' => array(
|
|
||||||
'relation' => 'OR',
|
|
||||||
array(
|
|
||||||
'key' => 'sp_format',
|
|
||||||
'value' => 'number',
|
|
||||||
'compare' => 'NOT EXISTS',
|
|
||||||
),
|
|
||||||
array(
|
|
||||||
'key' => 'sp_format',
|
|
||||||
'value' => array( 'equation', 'text' ),
|
|
||||||
'compare' => 'NOT IN',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
$stats = get_posts( $args );
|
|
||||||
|
|
||||||
$formats = array();
|
|
||||||
$data = array();
|
|
||||||
$merged = array();
|
|
||||||
$column_order = array();
|
|
||||||
$ordered_columns = array();
|
|
||||||
|
|
||||||
if ( $stats ):
|
|
||||||
|
|
||||||
foreach ( $stats as $stat ):
|
|
||||||
|
|
||||||
// Get post meta
|
|
||||||
$meta = get_post_meta( $stat->ID );
|
|
||||||
|
|
||||||
// Add equation to object
|
|
||||||
if ( $stat->post_type == 'sp_metric' ):
|
|
||||||
$stat->equation = null;
|
|
||||||
else:
|
|
||||||
$stat->equation = sp_array_value( sp_array_value( $meta, 'sp_equation', array() ), 0, 0 );
|
|
||||||
endif;
|
|
||||||
|
|
||||||
// Add precision to object
|
|
||||||
$stat->precision = sp_array_value( sp_array_value( $meta, 'sp_precision', array() ), 0, 0 ) + 0;
|
|
||||||
|
|
||||||
// Add column name to columns
|
|
||||||
$columns[ $stat->post_name ] = $stat->post_title;
|
|
||||||
|
|
||||||
// Add format
|
|
||||||
$format = get_post_meta( $stat->ID, 'sp_format', true );
|
|
||||||
if ( '' === $format ) {
|
|
||||||
$format = 'number';
|
|
||||||
}
|
|
||||||
$formats[ $stat->post_name ] = $format;
|
|
||||||
|
|
||||||
$column_order[] = $stat->post_name;
|
|
||||||
|
|
||||||
endforeach;
|
|
||||||
|
|
||||||
endif;
|
|
||||||
|
|
||||||
foreach ( $column_order as $slug ):
|
|
||||||
|
|
||||||
if ( ! in_array( $slug, $this->columns ) ) continue;
|
|
||||||
|
|
||||||
$ordered_columns[] = $slug;
|
|
||||||
|
|
||||||
endforeach;
|
|
||||||
|
|
||||||
$diff = array_diff( $this->columns, $ordered_columns );
|
|
||||||
$this->columns = array_merge( $diff, $ordered_columns );
|
|
||||||
|
|
||||||
// Fill in empty placeholder values for each player
|
// Fill in empty placeholder values for each player
|
||||||
foreach ( $player_ids as $player_id ):
|
foreach ( $player_ids as $player_id ):
|
||||||
if ( ! $player_id )
|
if ( ! $player_id )
|
||||||
|
|||||||
@@ -161,6 +161,7 @@ class SP_Player extends SP_Custom_Post {
|
|||||||
|
|
||||||
$performance_labels = array();
|
$performance_labels = array();
|
||||||
$formats = array();
|
$formats = array();
|
||||||
|
$sendoffs = array();
|
||||||
|
|
||||||
foreach ( $posts as $post ):
|
foreach ( $posts as $post ):
|
||||||
if ( -1 === $section ) {
|
if ( -1 === $section ) {
|
||||||
@@ -182,6 +183,11 @@ class SP_Player extends SP_Custom_Post {
|
|||||||
$format = 'number';
|
$format = 'number';
|
||||||
}
|
}
|
||||||
$formats[ $post->post_name ] = $format;
|
$formats[ $post->post_name ] = $format;
|
||||||
|
|
||||||
|
$sendoff = get_post_meta( $post->ID, 'sp_sendoff', true );
|
||||||
|
if ( $sendoff ) {
|
||||||
|
$sendoffs[] = $post->post_name;
|
||||||
|
}
|
||||||
endforeach;
|
endforeach;
|
||||||
|
|
||||||
// Get statistic labels
|
// Get statistic labels
|
||||||
@@ -358,7 +364,19 @@ class SP_Player extends SP_Custom_Post {
|
|||||||
// Adjust for substitution time
|
// Adjust for substitution time
|
||||||
if ( sp_array_value( $player_performance, 'status' ) === 'sub' ):
|
if ( sp_array_value( $player_performance, 'status' ) === 'sub' ):
|
||||||
$totals['eventminutes'] -= sp_array_value( sp_array_value( sp_array_value( sp_array_value( $timeline, $team_id ), $this->ID ), 'sub' ), 0, 0 );
|
$totals['eventminutes'] -= sp_array_value( sp_array_value( sp_array_value( sp_array_value( $timeline, $team_id ), $this->ID ), 'sub' ), 0, 0 );
|
||||||
|
|
||||||
|
$timeline_performance = sp_array_value( sp_array_value( $timeline, $team_id, array() ), $this->ID, array() );
|
||||||
|
if ( empty( $timeline_performance ) ) continue;
|
||||||
|
foreach ( $sendoffs as $sendoff_key ):
|
||||||
|
if ( ! array_key_exists( $sendoff_key, $timeline_performance ) ) continue;
|
||||||
|
$sendoff_times = sp_array_value( sp_array_value( sp_array_value( $timeline, $team_id ), $this->ID ), $sendoff_key );
|
||||||
|
$sendoff_times = array_filter( $sendoff_times );
|
||||||
|
$sendoff_time = end( $sendoff_times );
|
||||||
|
if ( ! $sendoff_time ) $sendoff_time = 0;
|
||||||
|
$totals['eventminutes'] += $sendoff_time - $minutes;
|
||||||
|
endforeach;
|
||||||
else:
|
else:
|
||||||
|
$subbed_out = false;
|
||||||
foreach ( $timeline as $timeline_team => $timeline_players ):
|
foreach ( $timeline as $timeline_team => $timeline_players ):
|
||||||
if ( ! is_array( $timeline_players ) ) continue;
|
if ( ! is_array( $timeline_players ) ) continue;
|
||||||
foreach ( $timeline_players as $timeline_player => $timeline_performance ):
|
foreach ( $timeline_players as $timeline_player => $timeline_performance ):
|
||||||
@@ -366,9 +384,22 @@ class SP_Player extends SP_Custom_Post {
|
|||||||
$substitution_time = sp_array_value( sp_array_value( sp_array_value( sp_array_value( $timeline, $team_id ), $timeline_player ), 'sub' ), 0, 0 );
|
$substitution_time = sp_array_value( sp_array_value( sp_array_value( sp_array_value( $timeline, $team_id ), $timeline_player ), 'sub' ), 0, 0 );
|
||||||
if ( $substitution_time ):
|
if ( $substitution_time ):
|
||||||
$totals['eventminutes'] += $substitution_time - $minutes;
|
$totals['eventminutes'] += $substitution_time - $minutes;
|
||||||
|
$subbed_out = true;
|
||||||
endif;
|
endif;
|
||||||
endif;
|
endif;
|
||||||
endforeach;
|
endforeach;
|
||||||
|
|
||||||
|
if ( $subbed_out ) continue;
|
||||||
|
$timeline_performance = sp_array_value( $timeline_players, $this->ID, array() );
|
||||||
|
if ( empty( $timeline_performance ) ) continue;
|
||||||
|
foreach ( $sendoffs as $sendoff_key ):
|
||||||
|
if ( ! array_key_exists( $sendoff_key, $timeline_performance ) ) continue;
|
||||||
|
$sendoff_times = sp_array_value( sp_array_value( sp_array_value( $timeline, $team_id ), $this->ID ), $sendoff_key );
|
||||||
|
$sendoff_times = array_filter( $sendoff_times );
|
||||||
|
$sendoff_time = end( $sendoff_times );
|
||||||
|
if ( ! $sendoff_time ) $sendoff_time = 0;
|
||||||
|
$totals['eventminutes'] += $sendoff_time - $minutes;
|
||||||
|
endforeach;
|
||||||
endforeach;
|
endforeach;
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user