105 lines
3.0 KiB
PHP
105 lines
3.0 KiB
PHP
<?php
|
|
/**
|
|
* Player Statistics
|
|
*
|
|
* @author ThemeBoy
|
|
* @package SportsPress/Templates
|
|
* @version 2.6.1
|
|
*/
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // Exit if accessed directly
|
|
}
|
|
if ( 'no' === get_option( 'sportspress_player_show_statistics', 'yes' ) && 'no' === get_option( 'sportspress_player_show_total', 'no' ) ) {
|
|
return;
|
|
}
|
|
|
|
if ( ! isset( $id ) ) {
|
|
$id = get_the_ID();
|
|
}
|
|
|
|
$player = new SP_Player( $id );
|
|
|
|
$scrollable = get_option( 'sportspress_enable_scrollable_tables', 'yes' ) == 'yes' ? true : false;
|
|
$show_career_totals = 'yes' === get_option( 'sportspress_player_show_career_total', 'no' ) ? true : false;
|
|
$sections = get_option( 'sportspress_player_performance_sections', -1 );
|
|
$show_teams = apply_filters( 'sportspress_player_team_statistics', true );
|
|
$leagues = array_filter( (array) get_the_terms( $id, 'sp_league' ) );
|
|
|
|
// Sort Leagues by User Defined Order (PHP5.2 supported)
|
|
foreach ( $leagues as $key => $league ) {
|
|
$leagues[ $key ]->sp_order = get_term_meta( $league->term_id, 'sp_order', true );
|
|
}
|
|
if ( ! function_exists( 'sortByOrder' ) ) {
|
|
function sortByOrder( $a, $b ) {
|
|
return (int) $a->sp_order - (int) $b->sp_order;
|
|
}
|
|
}
|
|
usort( $leagues, 'sortByOrder' );
|
|
|
|
$positions = $player->positions();
|
|
$player_sections = array();
|
|
if ( $positions ) {
|
|
foreach ( $positions as $position ) {
|
|
$player_sections = array_merge( $player_sections, sp_get_term_sections( $position->term_id ) );
|
|
}
|
|
}
|
|
|
|
// Determine order of sections
|
|
if ( 1 == $sections ) {
|
|
$section_order = array(
|
|
1 => esc_attr__( 'Defense', 'sportspress' ),
|
|
0 => esc_attr__( 'Offense', 'sportspress' ),
|
|
);
|
|
} elseif ( 0 == $sections ) {
|
|
$section_order = array( esc_attr__( 'Offense', 'sportspress' ), esc_attr__( 'Defense', 'sportspress' ) );
|
|
} else {
|
|
$section_order = array( -1 => null );
|
|
}
|
|
|
|
// Loop through statistics for each league
|
|
if ( is_array( $leagues ) ) :
|
|
foreach ( $section_order as $section_id => $section_label ) {
|
|
if ( -1 !== $section_id && ! empty( $player_sections ) && ! in_array( $section_id, $player_sections ) ) {
|
|
continue;
|
|
}
|
|
|
|
if ( sizeof( $leagues ) > 1 ) {
|
|
printf( '<h3 class="sp-post-caption sp-player-statistics-section">%s</h3>', wp_kses_post( $section_label ) );
|
|
}
|
|
|
|
foreach ( $leagues as $league ) :
|
|
$caption = $league->name;
|
|
|
|
if ( null !== $section_label ) {
|
|
if ( sizeof( $leagues ) === 1 ) {
|
|
$caption = $section_label;
|
|
}
|
|
}
|
|
|
|
$args = array(
|
|
'data' => $player->data( $league->term_id, false, $section_id ),
|
|
'caption' => $caption,
|
|
'scrollable' => $scrollable,
|
|
'league_id' => $league->term_id,
|
|
);
|
|
if ( ! $show_teams ) {
|
|
$args['hide_teams'] = true;
|
|
}
|
|
sp_get_template( 'player-statistics-league.php', $args );
|
|
endforeach;
|
|
|
|
if ( $show_career_totals ) {
|
|
sp_get_template(
|
|
'player-statistics-league.php',
|
|
array(
|
|
'data' => $player->data( 0, false, $section_id ),
|
|
'caption' => esc_attr__( 'Career Total', 'sportspress' ),
|
|
'scrollable' => $scrollable,
|
|
'hide_teams' => true,
|
|
)
|
|
);
|
|
}
|
|
}
|
|
endif;
|