Change player numbers and positions per event

This commit is contained in:
Brian Miyaji
2014-06-18 17:48:07 +10:00
parent 419da22d50
commit c66fcd7817
4 changed files with 63 additions and 35 deletions

View File

@@ -194,6 +194,11 @@ table.widefat.sp-data-table input[type="number"] {
width: 100%;
}
table.widefat.sp-data-table input.small-text {
width: 50px;
min-width: 0;
}
table.widefat.sp-data-table input.name {
min-width: 0;
width: auto;

View File

@@ -60,6 +60,16 @@ class SP_Meta_Box_Event_Performance {
<tr>
<th>#</th>
<th><?php _e( 'Player', 'sportspress' ); ?></th>
<th>
<?php if ( $has_checkboxes ): ?>
<label for="sp_columns_position">
<input type="checkbox" name="sp_columns[]" value="position" id="sp_columns_position" <?php checked( is_array( $columns ) && in_array( 'position', $columns ) ); ?>>
<?php _e( 'Position', 'sportspress' ); ?>
</label>
<?php else: ?>
<?php _e( 'Position', 'sportspress' ); ?>
<?php endif; ?>
</th>
<?php foreach ( $labels as $key => $label ): ?>
<th>
<?php if ( $has_checkboxes ): ?>
@@ -80,10 +90,28 @@ class SP_Meta_Box_Event_Performance {
foreach ( $data as $player_id => $player_performance ):
if ( !$player_id ) continue;
$number = get_post_meta( $player_id, 'sp_number', true );
$value = sp_array_value( $player_performance, 'number', '' );
?>
<tr class="sp-row sp-post" data-player="<?php echo $player_id; ?>">
<td><?php echo ( $number ? $number : '&nbsp;' ); ?></td>
<td>
<input class="small-text sp-player-number-input" type="text" name="sp_players[<?php echo $team_id; ?>][<?php echo $player_id; ?>][number]" value="<?php echo $value; ?>" placeholder="<?php echo $number; ?>" />
</td>
<td><?php echo get_the_title( $player_id ); ?></td>
<td>
<?php
$selected = sp_array_value( $player_performance, 'position', null );
if ( $selected == null ):
$selected = sp_get_the_term_id( $player_id, 'sp_position', 0 );
endif;
$args = array(
'taxonomy' => 'sp_position',
'name' => 'sp_players[' . $team_id . '][' . $player_id . '][position]',
'values' => 'term_id',
'selected' => $selected
);
sp_dropdown_taxonomies( $args );
?>
</td>
<?php foreach( $labels as $column => $label ):
$value = sp_array_value( $player_performance, $column, '' );
?>
@@ -104,6 +132,7 @@ class SP_Meta_Box_Event_Performance {
<tr class="sp-row sp-total">
<td>&nbsp;</td>
<td><strong><?php _e( 'Total', 'sportspress' ); ?></strong></td>
<td>&nbsp;</td>
<?php foreach( $labels as $column => $label ):
$player_id = 0;
$player_performance = sp_array_value( $data, 0, array() );

View File

@@ -58,7 +58,6 @@ class SP_Event extends SP_Custom_Post{
$performance = (array)get_post_meta( $this->ID, 'sp_players', true );
$labels = sp_get_var_labels( 'sp_performance' );
$columns = get_post_meta( $this->ID, 'sp_columns', true );
$output = array();
foreach( $teams as $i => $team_id ):
$players = sp_array_between( (array)get_post_meta( $this->ID, 'sp_player', false ), 0, $i );
$data = sp_array_combine( $players, sp_array_value( $performance, $team_id, array() ) );
@@ -74,6 +73,12 @@ class SP_Event extends SP_Custom_Post{
$totals[ $key ] += sp_array_value( $player_performance, $key, 0 );
endif;
endforeach;
if ( ! array_key_exists( 'number', $player_performance ) || $player_performance['number'] == null ):
$performance[ $team_id ][ $player_id ]['number'] = get_post_meta( $player_id, 'sp_number', true );
endif;
if ( ! array_key_exists( 'position', $player_performance ) || $player_performance['position'] == null ):
$performance[ $team_id ][ $player_id ]['position'] = get_post_meta( $player_id, 'sp_position', true );
endif;
endforeach;
foreach( $totals as $key => $value ):
@@ -82,34 +87,13 @@ class SP_Event extends SP_Custom_Post{
$totals[ $key ] = $manual_total;
endif;
endforeach;
$lineup = array_filter( $data, array( $this, 'lineup_filter' ) );
$subs = array_filter( $data, array( $this, 'sub_filter' ) );
foreach ( $subs as $player_id => $player ):
if ( ! $player_id )
continue;
$sub = sp_array_value( $player, 'sub', 0 );
if ( ! $sub )
continue;
$lineup[ $sub ]['sub'] = $player_id;
endforeach;
$output[ $team_id ] = array(
'lineup' => $lineup,
'subs' => $subs,
'total' => $totals
);
endforeach;
if ( $admin ):
return array( $labels, $columns, $performance, $teams );
else:
// Add status to performance labels
$labels['status'] = __( 'Status', 'sportspress' );
// Add position to performance labels
$labels = array_merge( array( 'position' => __( 'Position', 'sportspress' ) ), $labels );
if ( ! is_array( $columns ) )
$columns = array();
foreach ( $labels as $key => $label ):

View File

@@ -86,9 +86,9 @@ foreach( $teams as $index => $team_id ):
if ( ! $name )
continue;
echo '<tr class="' . ( $i % 2 == 0 ? 'odd' : 'even' ) . '">';
echo '<tr class="' . sp_array_value( $row, 'status', 'lineup' ) . ' ' . ( $i % 2 == 0 ? 'odd' : 'even' ) . '">';
$number = get_post_meta( $player_id, 'sp_number', true );
$number = sp_array_value( $row, 'number', '&nbsp;' );
// Player number
echo '<td class="data-number">' . $number . '</td>';
@@ -99,11 +99,12 @@ foreach( $teams as $index => $team_id ):
if ( isset( $row['status'] ) && $row['status'] == 'sub' ):
$name = '(' . $name . ')';
endif;
if ( array_key_exists( $player_id, $lineup_sub_relation ) ):
$name .= ' <span class="sub-in" title="' . get_the_title( $lineup_sub_relation[ $player_id ] ) . '">' . get_post_meta( $lineup_sub_relation[ $player_id ], 'sp_number', true ) . '</span>';
elseif ( isset( $row['sub'] ) && $row['sub'] ):
$name .= ' <span class="sub-out" title="' . get_the_title( $row[ 'sub' ] ) . '">' . get_post_meta( $row['sub'], 'sp_number', true ) . '</span>';
endif;
endif;
if ( array_key_exists( $player_id, $lineup_sub_relation ) ):
$name .= ' <span class="sub-in" title="' . get_the_title( $lineup_sub_relation[ $player_id ] ) . '">' . sp_array_value( sp_array_value( $data, $lineup_sub_relation[ $player_id ], array() ), 'number', null ) . '</span>';
elseif ( isset( $row['sub'] ) && $row['sub'] ):
$name .= ' <span class="sub-out" title="' . get_the_title( $row[ 'sub' ] ) . '">' . sp_array_value( sp_array_value( $data, $row['sub'], array() ), 'number', null ) . '</span>';
endif;
echo '<td class="data-name">' . $name . '</td>';
@@ -112,10 +113,19 @@ foreach( $teams as $index => $team_id ):
foreach( $labels as $key => $label ):
if ( $key == 'name' )
continue;
if ( array_key_exists( $key, $row ) && $row[ $key ] != '' ):
$value = $row[ $key ];
if ( $key == 'position' ):
if ( array_key_exists( $key, $row ) && $row[ $key ] != '' ):
$position = get_term_by( 'id', $row[ $key ], 'sp_position' );
$value = $position->name;
else:
$value = '&mdash;';
endif;
else:
$value = 0;
if ( array_key_exists( $key, $row ) && $row[ $key ] != '' ):
$value = $row[ $key ];
else:
$value = 0;
endif;
endif;
if ( ! array_key_exists( $key, $totals ) ):
$totals[ $key ] = 0;