Enable individual player outcomes

This commit is contained in:
Brian Miyaji
2014-12-10 10:01:59 +11:00
parent 949c143ab9
commit fdca8e72b3
3 changed files with 112 additions and 7 deletions

View File

@@ -88,7 +88,13 @@ class SP_Meta_Box_Event_Performance {
</th>
<?php endforeach; ?>
<?php if ( $team_id ): ?>
<th><?php _e( 'Status', 'sportspress' ); ?></th>
<th>
<?php _e( 'Status', 'sportspress' ); ?>
</th>
<?php else: ?>
<th>
<?php _e( 'Outcome', 'sportspress' ); ?>
</th>
<?php endif; ?>
</tr>
</thead>
@@ -105,9 +111,7 @@ class SP_Meta_Box_Event_Performance {
?>
<td><input type="text" name="sp_players[<?php echo $team_id; ?>][<?php echo $player_id; ?>][<?php echo $column; ?>]" value="<?php echo $value; ?>" placeholder="0" /></td>
<?php endforeach; ?>
<?php if ( $team_id ): ?>
<td>&nbsp;</td>
<?php endif; ?>
<td>&nbsp;</td>
</tr>
</tfoot>
<tbody>
@@ -151,6 +155,28 @@ class SP_Meta_Box_Event_Performance {
<?php echo self::status_select( $team_id, $player_id, sp_array_value( $player_performance, 'status', null ) ); ?>
<?php echo self::sub_select( $team_id, $player_id, sp_array_value( $player_performance, 'sub', null ), $data ); ?>
</td>
<?php else: ?>
<td>
<?php
$values = sp_array_value( $player_performance, 'outcome', '' );
if ( ! is_array( $values ) )
$values = array( $values );
$args = array(
'post_type' => 'sp_outcome',
'name' => 'sp_players[' . $team_id . '][' . $player_id . '][outcome][]',
'option_none_value' => '',
'sort_order' => 'ASC',
'sort_column' => 'menu_order',
'selected' => $values,
'class' => 'sp-outcome',
'property' => 'multiple',
'chosen' => true,
'placeholder' => __( 'None', 'sportspress' ),
);
sp_dropdown_pages( $args );
?>
</td>
<?php endif; ?>
</tr>
<?php

View File

@@ -154,7 +154,47 @@ class SP_Player_List extends SP_Custom_Post {
$player_performance = sp_array_value( $players, $player_id, array() );
foreach ( $player_performance as $key => $value ):
if ( array_key_exists( $key, $totals[ $player_id ] ) ):
if ( 'outcome' == $key ):
// Increment events attended, played, and started
$totals[ $player_id ]['eventsattended'] ++;
$totals[ $player_id ]['eventsplayed'] ++;
$totals[ $player_id ]['eventsstarted'] ++;
$totals[ $player_id ]['eventminutes'] += $minutes;
// Convert to array
if ( ! is_array( $value ) ):
$value = array( $value );
endif;
foreach ( $value as $outcome ):
if ( $outcome && $outcome != '-1' ):
// Increment events attended and outcome count
if ( array_key_exists( $outcome, $totals[ $player_id ] ) ):
$totals[ $player_id ][ $outcome ] ++;
endif;
// Add to streak counter
if ( $streaks[ $player_id ]['fire'] && ( $streaks[ $player_id ]['name'] == '' || $streaks[ $player_id ]['name'] == $outcome ) ):
$streaks[ $player_id ]['name'] = $outcome;
$streaks[ $player_id ]['count'] ++;
else:
$streaks[ $player_id ]['fire'] = 0;
endif;
// Add to last 5 counter if sum is less than 5
if ( array_key_exists( $player_id, $last5s ) && array_key_exists( $outcome, $last5s[ $player_id ] ) && array_sum( $last5s[ $player_id ] ) < 5 ):
$last5s[ $player_id ][ $outcome ] ++;
endif;
// Add to last 10 counter if sum is less than 10
if ( array_key_exists( $player_id, $last10s ) && array_key_exists( $outcome, $last10s[ $player_id ] ) && array_sum( $last10s[ $player_id ] ) < 10 ):
$last10s[ $player_id ][ $outcome ] ++;
endif;
endif;
endforeach;
elseif ( array_key_exists( $key, $totals[ $player_id ] ) ):
$totals[ $player_id ][ $key ] += $value;
endif;
endforeach;

View File

@@ -176,7 +176,46 @@ class SP_Player extends SP_Custom_Post {
$player_performance = sp_array_value( $players, $this->ID, array() );
foreach ( $player_performance as $key => $value ):
if ( array_key_exists( $key, $totals ) ):
if ( 'outcome' == $key ):
// Increment events attended, played, and started
$totals['eventsattended'] ++;
$totals['eventsplayed'] ++;
$totals['eventsstarted'] ++;
$totals['eventminutes'] += $minutes;
// Convert to array
if ( ! is_array( $value ) ):
$value = array( $value );
endif;
foreach ( $value as $outcome ):
if ( $outcome && $outcome != '-1' ):
// Increment outcome count
if ( array_key_exists( $outcome, $totals ) ):
$totals[ $outcome ] ++;
endif;
// Add to streak counter
if ( $streak['fire'] && ( $streak['name'] == '' || $streak['name'] == $outcome ) ):
$streak['name'] = $outcome;
$streak['count'] ++;
else:
$streak['fire'] = 0;
endif;
// Add to last 5 counter if sum is less than 5
if ( array_key_exists( $outcome, $last5 ) && array_sum( $last5 ) < 5 ):
$last5[ $outcome ] ++;
endif;
// Add to last 10 counter if sum is less than 10
if ( array_key_exists( $outcome, $last10 ) && array_sum( $last10 ) < 10 ):
$last10[ $outcome ] ++;
endif;
endif;
endforeach;
elseif ( array_key_exists( $key, $totals ) ):
$totals[ $key ] += $value;
endif;
endforeach;
@@ -207,7 +246,7 @@ class SP_Player extends SP_Custom_Post {
$value = array( $value );
endif;
foreach( $value as $outcome ):
foreach ( $value as $outcome ):
if ( $outcome && $outcome != '-1' ):
// Increment outcome count