Calculate stats using EOS
This commit is contained in:
@@ -54,6 +54,14 @@ $sportspress_thumbnail_texts = array(
|
|||||||
$sportspress_options = array(
|
$sportspress_options = array(
|
||||||
'settings' => array(
|
'settings' => array(
|
||||||
'sp_event_team_count' => 2,
|
'sp_event_team_count' => 2,
|
||||||
|
'sp_team_stats_columns' => 'P: $played
|
||||||
|
W: $wins
|
||||||
|
D: $ties
|
||||||
|
L: $losses
|
||||||
|
F: $for
|
||||||
|
A: $against
|
||||||
|
GD: $for-$against
|
||||||
|
PTS: 3$wins+$ties'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
69
helpers.php
69
helpers.php
@@ -235,6 +235,14 @@ if ( !function_exists( 'sp_post_checklist' ) ) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( !function_exists( 'sp_get_eos_array' ) ) {
|
||||||
|
function sp_get_eos_array( $raw ) {
|
||||||
|
$raw = str_replace( array( "\r\n", ' ' ), array( "\n", '' ), $raw );
|
||||||
|
$output = explode( "\n", $raw );
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
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() ) {
|
||||||
$args = array_merge(
|
$args = array_merge(
|
||||||
@@ -251,31 +259,54 @@ if ( !function_exists( 'sp_get_stats_row' ) ) {
|
|||||||
$post->sp_result = get_post_meta( $post->ID, 'sp_result', false );
|
$post->sp_result = get_post_meta( $post->ID, 'sp_result', false );
|
||||||
endforeach;
|
endforeach;
|
||||||
|
|
||||||
|
// Load Equation Operating System
|
||||||
|
$eos = new eqEOS();
|
||||||
|
|
||||||
|
// Define variables to use in EOS
|
||||||
|
$vars = array();
|
||||||
|
|
||||||
|
$vars['played'] = sizeof( $posts );
|
||||||
|
|
||||||
|
$vars['wins'] = sizeof( array_filter( $posts, function( $post ) {
|
||||||
|
return array_count_values( $post->sp_result ) > 1 && max( $post->sp_result ) == $post->sp_result[ $post->sp_team_index ];
|
||||||
|
} ) );
|
||||||
|
|
||||||
|
$vars['ties'] = sizeof( array_filter( $posts, function( $post ) {
|
||||||
|
return array_count_values( $post->sp_result ) == 1;
|
||||||
|
} ) );
|
||||||
|
|
||||||
|
$vars['losses'] = sizeof( array_filter( $posts, function( $post ) {
|
||||||
|
return array_count_values( $post->sp_result ) > 1 && min( $post->sp_result ) == $post->sp_result[ $post->sp_team_index ];
|
||||||
|
} ) );
|
||||||
|
|
||||||
|
$vars['for'] = 0;
|
||||||
|
foreach( $posts as $post ):
|
||||||
|
$vars['for'] += $post->sp_result[ $post->sp_team_index ];
|
||||||
|
endforeach;
|
||||||
|
|
||||||
|
$vars['against'] = 0;
|
||||||
|
foreach( $posts as $post ):
|
||||||
|
$result = $post->sp_result;
|
||||||
|
unset( $result[ $post->sp_team_index ] );
|
||||||
|
$vars['against'] += array_sum( $result );
|
||||||
|
endforeach;
|
||||||
|
|
||||||
switch ($post_type):
|
switch ($post_type):
|
||||||
case 'sp_team':
|
case 'sp_team':
|
||||||
$row = array(
|
$rows = sp_get_eos_array( get_option( 'sp_team_stats_columns' ) );
|
||||||
sizeof( $posts ),
|
|
||||||
sizeof(
|
|
||||||
array_filter(
|
|
||||||
$posts,
|
|
||||||
function( $var ) {
|
|
||||||
return max( $var->sp_result ) == $var->sp_result[ $var->sp_team_index ];
|
|
||||||
}
|
|
||||||
)
|
|
||||||
),
|
|
||||||
99,
|
|
||||||
99,
|
|
||||||
93,
|
|
||||||
99,
|
|
||||||
99,
|
|
||||||
99
|
|
||||||
);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$row = array();
|
$rows = array();
|
||||||
break;
|
break;
|
||||||
endswitch;
|
endswitch;
|
||||||
return $row;
|
|
||||||
|
$output = array();
|
||||||
|
foreach ( $rows as $key => $value ):
|
||||||
|
$row = explode( ':', $value );
|
||||||
|
$output[] = $eos->solveIF( sp_array_value( $row, 1, 'played'), $vars );
|
||||||
|
endforeach;
|
||||||
|
|
||||||
|
return $output;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user