Add static option to sp_get_stats_row function

This commit is contained in:
Takumi
2013-08-19 20:35:33 +10:00
parent e041dca90d
commit bbaf310465
4 changed files with 44 additions and 12 deletions

View File

@@ -253,7 +253,7 @@ if ( !function_exists( 'sp_get_eos_array' ) ) {
} }
if ( !function_exists( 'sp_get_stats_row' ) ) { if ( !function_exists( 'sp_get_stats_row' ) ) {
function sp_get_stats_row( $post_type = 'post', $args = array() ) { function sp_get_stats_row( $post_type = 'post', $args = array(), $static = false ) {
$args = array_merge( $args = array_merge(
array( array(
'posts_per_page' => -1 'posts_per_page' => -1
@@ -266,13 +266,15 @@ if ( !function_exists( 'sp_get_stats_row' ) ) {
$eos = new eqEOS(); $eos = new eqEOS();
$vars = array(); $vars = array();
// Get dynamic stats
switch ($post_type): switch ($post_type):
case 'sp_team': case 'sp_team':
// Add object properties needed for retreiving event stats // Add object properties needed for retreiving event stats
foreach( $posts as $post ): foreach( $posts as $post ):
$post->sp_team = get_post_meta( $post->ID, 'sp_team', false ); $post->sp_team = get_post_meta( $post->ID, 'sp_team', false );
$post->sp_team_index = array_search( $args['meta_value'], $post->sp_team ); $post->sp_team_index = array_search( $args['meta_query'][0]['value'], $post->sp_team );
$post->sp_result = get_post_meta( $post->ID, 'sp_result', false ); $post->sp_result = get_post_meta( $post->ID, 'sp_result', false );
endforeach; endforeach;
@@ -327,12 +329,34 @@ if ( !function_exists( 'sp_get_stats_row' ) ) {
endswitch; endswitch;
$output = array(); // Get dynamic stats
$dynamic = array();
foreach ( $rows as $key => $value ): foreach ( $rows as $key => $value ):
$row = explode( ':', $value ); $row = explode( ':', $value );
$output[] = $eos->solveIF( sp_array_value( $row, 1, '$played'), $vars ); $dynamic[] = $eos->solveIF( sp_array_value( $row, 1, '$played'), $vars );
endforeach; endforeach;
if ( $static ):
// Get static stats
$static = (array)get_post_meta( $args['meta_query'][0]['value'], 'sp_stats', true );
$table = sp_array_value( $static, 0, array() );
if ( array_key_exists( 'tax_query', $args ) )
$row_id = $args['tax_query'][0]['terms'];
else
$row_id = 0;
$static = sp_array_value( $table, $row_id, array() );
// Combine static and dynamic stats
$output = array_filter( $static ) + $dynamic;
ksort( $output );
else:
$output = $dynamic;
endif;
return $output; return $output;
} }
} }

View File

@@ -72,7 +72,7 @@ function sp_player_stats_meta( $post ) {
endforeach; endforeach;
?> ?>
<p><strong><?php _e( 'Overall', 'sportspress' ); ?></strong></p> <p><strong><?php _e( 'Overall', 'sportspress' ); ?></strong></p>
<?php sp_stats_table( $data, $placeholders, 0, array( 'Team', 'Played', 'Goals', 'Assists', 'Yellow Cards', 'Red Cards' ), true, 'sp_league' ); ?> <?php sp_stats_table( $data, $placeholders, 0, array( 'League', 'Played', 'Goals', 'Assists', 'Yellow Cards', 'Red Cards' ), true, 'sp_league' ); ?>
<?php <?php
// Leagues // Leagues
@@ -109,7 +109,7 @@ function sp_player_stats_meta( $post ) {
endforeach; endforeach;
?> ?>
<p><strong><?php echo get_the_title( $team ); ?></strong></p> <p><strong><?php echo get_the_title( $team ); ?></strong></p>
<?php sp_stats_table( $data, $placeholders, $team, array( 'Team', 'Played', 'Goals', 'Assists', 'Yellow Cards', 'Red Cards' ), true, 'sp_league' ); ?> <?php sp_stats_table( $data, $placeholders, $team, array( 'League', 'Played', 'Goals', 'Assists', 'Yellow Cards', 'Red Cards' ), true, 'sp_league' ); ?>
<?php <?php
endforeach; endforeach;

View File

@@ -69,8 +69,12 @@ function sp_table_stats_meta( $post ) {
foreach ( $teams as $team ): foreach ( $teams as $team ):
$args = array( $args = array(
'post_type' => 'sp_event', 'post_type' => 'sp_event',
'meta_key' => 'sp_team', 'meta_query' => array(
'meta_value' => $team, array(
'key' => 'sp_team',
'value' => $team
)
),
'tax_query' => array( 'tax_query' => array(
array( array(
'taxonomy' => 'sp_league', 'taxonomy' => 'sp_league',
@@ -79,7 +83,7 @@ function sp_table_stats_meta( $post ) {
) )
) )
); );
$placeholders[ $team ] = sp_get_stats_row( 'sp_team', $args ); $placeholders[ $team ] = sp_get_stats_row( 'sp_team', $args, true );
endforeach; endforeach;
sp_stats_table( $data, $placeholders, $league_id, array( 'Team', 'P', 'W', 'D', 'L', 'F', 'A', 'GD', 'Pts' ), false ); sp_stats_table( $data, $placeholders, $league_id, array( 'Team', 'P', 'W', 'D', 'L', 'F', 'A', 'GD', 'Pts' ), false );

View File

@@ -47,7 +47,7 @@ function sp_team_stats_meta( $post ) {
$league_ids[] = $value->term_id; $league_ids[] = $value->term_id;
endforeach; endforeach;
// Get all leagues populated with stats where availabled // Get all leagues populated with stats where available
$data = sp_array_combine( $league_ids, sp_array_value( $stats, 0, array() ) ); $data = sp_array_combine( $league_ids, sp_array_value( $stats, 0, array() ) );
// Generate array of placeholder values for each league // Generate array of placeholder values for each league
@@ -55,8 +55,12 @@ function sp_team_stats_meta( $post ) {
foreach ( $league_ids as $league_id ): foreach ( $league_ids as $league_id ):
$args = array( $args = array(
'post_type' => 'sp_event', 'post_type' => 'sp_event',
'meta_key' => 'sp_team', 'meta_query' => array(
'meta_value' => $post->ID, array(
'key' => 'sp_team',
'value' => $post->ID
)
),
'tax_query' => array( 'tax_query' => array(
array( array(
'taxonomy' => 'sp_league', 'taxonomy' => 'sp_league',