Add fallback for offense and defense stats

This commit is contained in:
Brian Miyaji
2016-02-17 19:46:39 +11:00
parent df1eaf9ad7
commit fd3f72d8c3
3 changed files with 68 additions and 36 deletions

View File

@@ -101,7 +101,7 @@ class SP_Meta_Box_Event_Performance {
$columns = get_posts( $args );
$offense_labels = $defense_labels = array();
$labels = array( array(), array() );
foreach ( $columns as $column ):
$section = get_post_meta( $column->ID, 'sp_section', true );
if ( '' === $section ) {
@@ -109,38 +109,53 @@ class SP_Meta_Box_Event_Performance {
}
switch ( $section ):
case 1:
$defense_labels[ $column->post_name ] = $column->post_title;
$labels[1][ $column->post_name ] = $column->post_title;
break;
case 0:
$offense_labels[ $column->post_name ] = $column->post_title;
$labels[0][ $column->post_name ] = $column->post_title;
break;
default:
$defense_labels[ $column->post_name ] = $column->post_title;
$offense_labels[ $column->post_name ] = $column->post_title;
$labels[1][ $column->post_name ] = $column->post_title;
$labels[0][ $column->post_name ] = $column->post_title;
endswitch;
endforeach;
// Get results for offensive players in the team
$offense = sp_array_between( (array)get_post_meta( $post_id, 'sp_offense', false ), 0, $key );
$offense[] = -1;
$offense_data = sp_array_combine( $offense, sp_array_value( $stats, $team_id, array() ) );
$offense = (array)get_post_meta( $post_id, 'sp_offense', false );
$defense = (array)get_post_meta( $post_id, 'sp_defense', false );
$data = array();
if ( sizeof( $offense ) || sizeof( $defense ) ) {
// Get results for offensive players in the team
$offense = sp_array_between( $offense, 0, $key );
$offense[] = -1;
$data[0] = sp_array_combine( $offense, sp_array_value( $stats, $team_id, array() ) );
// Get results for defensive players in the team
$defense = sp_array_between( (array)get_post_meta( $post_id, 'sp_defense', false ), 0, $key );
$defense[] = -1;
$defense_data = sp_array_combine( $defense, sp_array_value( $stats, $team_id, array() ) );
?>
<div>
<p><strong><?php echo get_the_title( $team_id ); ?> &mdash; <?php _e( 'Offense', 'sportspress' ); ?></strong></p>
<?php self::table( $offense_labels, $columns, $offense_data, $team_id, $has_checkboxes, $positions, $status, 0, $formats, $order ); ?>
<?php do_action( 'sportspress_after_event_performance_table_admin', $offense_labels, $columns, $offense_data, $team_id ); ?>
</div>
<div>
<p><strong><?php echo get_the_title( $team_id ); ?> &mdash; <?php _e( 'Defense', 'sportspress' ); ?></strong></p>
<?php self::table( $defense_labels, $columns, $defense_data, $team_id, $has_checkboxes, $positions, $status, 1, $formats, $order ); ?>
<?php do_action( 'sportspress_after_event_performance_table_admin', $defense_labels, $columns, $defense_data, $team_id ); ?>
</div>
<?php
// Get results for defensive players in the team
$defense = sp_array_between( $defense, 0, $key );
$defense[] = -1;
$data[1] = sp_array_combine( $defense, sp_array_value( $stats, $team_id, array() ) );
} else {
// Get results for all players in the team
$players = sp_array_between( (array)get_post_meta( $post_id, 'sp_player', false ), 0, $key );
$players[] = -1;
$data[0] = $data[1] = sp_array_combine( $players, sp_array_value( $stats, $team_id, array() ) );
}
// Determine order of sections
if ( 1 == $sections ) {
$section_order = array( 1 => __( 'Defense', 'sportspress' ), 0 => __( 'Offense', 'sportspress' ) );
} else {
$section_order = array( __( 'Offense', 'sportspress' ), __( 'Defense', 'sportspress' ) );
}
foreach ( $section_order as $section_id => $section_label ) {
?>
<div>
<p><strong><?php echo get_the_title( $team_id ); ?> &mdash; <?php echo $section_label; ?></strong></p>
<?php self::table( $labels[ $section_id ], $columns, $data[ $section_id ], $team_id, $has_checkboxes, $positions, $status, $section_id, $formats, $order ); ?>
<?php do_action( 'sportspress_after_event_performance_table_admin', $labels[ $section_id ], $columns, $data[ $section_id ], $team_id ); ?>
</div>
<?php
}
}
$i ++;
endforeach;
@@ -159,7 +174,7 @@ class SP_Meta_Box_Event_Performance {
<?php
if ( 1 == $section && is_array( $order ) && sizeof( $order ) ) {
$player_order = sp_array_value( $order, $team_id, array() );
if ( is_array( $player_order ) ) {
if ( is_array( $player_order ) && sizeof( $player_order ) ) {
$data = sp_array_combine( $player_order, $data, true );
}
}

View File

@@ -832,7 +832,11 @@ if ( !function_exists( 'sp_post_checklist' ) ) {
<ul class="categorychecklist form-no-clear">
<li class="sp-select-all-container"><label class="selectit"><input type="checkbox" class="sp-select-all"> <strong><?php _e( 'Select All', 'sportspress' ); ?></strong></label></li>
<?php
$selected = sp_array_between( (array)get_post_meta( $post_id, $meta, false ), 0, $index );
$selected = (array)get_post_meta( $post_id, $slug, false );
if ( ! sizeof( $selected ) ) {
$selected = (array)get_post_meta( $post_id, $meta, false );
}
$selected = sp_array_between( $selected, 0, $index );
if ( empty( $posts ) ):
$query = array( 'post_type' => $meta, 'numberposts' => -1, 'post_per_page' => -1, 'orderby' => 'menu_order' );
if ( $meta == 'sp_player' ):

View File

@@ -89,7 +89,7 @@ if ( is_array( $teams ) ):
// Determine order of sections
if ( 1 == $sections ) {
$section_order = array( __( 'Defense', 'sportspress' ), __( 'Offense', 'sportspress' ) );
$section_order = array( 1 => __( 'Defense', 'sportspress' ), 0 => __( 'Offense', 'sportspress' ) );
} else {
$section_order = array( __( 'Offense', 'sportspress' ), __( 'Defense', 'sportspress' ) );
}
@@ -140,13 +140,24 @@ if ( is_array( $teams ) ):
$data = array();
// Get results for offensive players in the team
$offense = sp_array_between( (array)get_post_meta( $id, 'sp_offense', false ), 0, $index );
$data[0] = sp_array_combine( $offense, sp_array_value( $performance, $team_id, array() ) );
$offense = (array)get_post_meta( $id, 'sp_offense', false );
$defense = (array)get_post_meta( $id, 'sp_defense', false );
// Get results for defensive players in the team
$defense = sp_array_between( (array)get_post_meta( $id, 'sp_defense', false ), 0, $index );
$data[1] = sp_array_combine( $defense, sp_array_value( $performance, $team_id, array() ) );
if ( sizeof( $offense ) || sizeof( $defense ) ) {
// Get results for offensive players in the team
$offense = sp_array_between( $offense, 0, $index );
$data[0] = sp_array_combine( $offense, sp_array_value( $performance, $team_id, array() ) );
// Get results for defensive players in the team
$defense = sp_array_between( $defense, 0, $index );
$data[1] = sp_array_combine( $defense, sp_array_value( $performance, $team_id, array() ) );
} else {
// Get results for all players in the team
$players = sp_array_between( (array)get_post_meta( $id, 'sp_player', false ), 0, $index );
$data[0] = $data[1] = sp_array_combine( $players, sp_array_value( $performance, $team_id, array() ) );
}
$s = 0;
foreach ( $section_order as $section_id => $section_label ) {
if ( sizeof( $data[ $section_id ] ) ) {
@@ -154,7 +165,7 @@ if ( is_array( $teams ) ):
$order = (array)get_post_meta( $id, 'sp_order', true );
if ( is_array( $order ) && sizeof( $order ) ) {
$player_order = sp_array_value( $order, $team_id, array() );
if ( is_array( $player_order ) ) {
if ( is_array( $player_order ) && sizeof( $player_order ) ) {
$data[1] = sp_array_combine( $player_order, $data[1], true );
}
}
@@ -167,7 +178,7 @@ if ( is_array( $teams ) ):
'show_players' => $show_team_players,
'show_numbers' => $show_numbers,
'show_total' => $show_total,
'caption' => 0 == $section_id && $team_id ? get_the_title( $team_id ) : null,
'caption' => 0 == $s && $team_id ? get_the_title( $team_id ) : null,
'labels' => $labels[ $section_id ],
'formats' => $formats,
'mode' => $mode,
@@ -179,6 +190,8 @@ if ( is_array( $teams ) ):
'class' => 'sp-template-event-performance-team-' . $index . '-section-' . $section_id,
) );
}
$s++;
}
} else {
if ( 0 < $team_id ) {