diff --git a/globals.php b/globals.php index 2d7fc26e..696aad0c 100644 --- a/globals.php +++ b/globals.php @@ -1,289 +1,4 @@ array( - 'team' => - 'P' . ': $played' . "\r\n" . - 'W' . ': $wins' . "\r\n" . - 'D' . ': $ties' . "\r\n" . - 'L' . ': $losses' . "\r\n" . - 'F' . ': $for' . "\r\n" . - 'A' . ': $against' . "\r\n" . - 'GD' . ': $for - $against' . "\r\n" . - 'PTS' . ': 3 * $wins + $ties', - 'event' => - '1' . ': $first' . "\r\n" . - '2' . ': $second' . "\r\n" . - '3' . ': $third' . "\r\n" . - '4' . ': $fourth' . "\r\n" . - '5' . ': $fifth' . "\r\n" . - '6' . ': $sixth' . "\r\n" . - '7' . ': $seventh' . "\r\n" . - '8' . ': $eigth' . "\r\n" . - '9' . ': $ninth' . "\r\n" . - ' ' . ': $extra' . "\r\n" . - 'R' . ': $runs' . "\r\n" . - 'H' . ': $hits' . "\r\n" . - 'E' . ': $errors:' . "\r\n" . - 'LOB' . ': $lob', - 'player' => - array( - 'G' . ': $played' . "\r\n" . - 'AB' . ': $ab' . "\r\n" . - 'R' . ': $runs' . "\r\n" . - 'H' . ': $hits' . "\r\n" . - '2B' . ': $double' . "\r\n" . - '3B' . ': $triple' . "\r\n" . - 'HR' . ': $hr' . "\r\n" . - 'RBI' . ': $rbi' . "\r\n" . - 'BB' . ': $bb' . "\r\n" . - 'SO' . ': $so' . "\r\n" . - 'SB' . ': $sb' . "\r\n" . - 'CS' . ': $cs' . "\r\n" . - 'AVG' . ': $hits / $ab' . "\r\n" . - 'OBP' . ': ( $hits + $bb + $hbp ) / ( $ab + $bb + $hbp + $sf )' . "\r\n" . - 'SLG' . ': $tb / $ab' . "\r\n" . - 'OPS' . ': ( $hits + $bb + $hbp ) / ( $ab + $bb + $hbp + $sf ) + ( $tb / $ab )' - ), - array( - 'W' . ': $wins' . "\r\n" . - 'L' . ': $losses' . "\r\n" . - 'ERA' . ': ( $er * 9 ) / $ip' . "\r\n" . - 'G' . ': $played' . "\r\n" . - 'GS' . ': $gs' . "\r\n" . - 'SV' . ': $sv' . "\r\n" . - 'SVO' . ': $svo' . "\r\n" . - 'IP' . ': $ip' . "\r\n" . - 'H' . ': $hits' . "\r\n" . - 'R' . ': $runs' . "\r\n" . - 'ER' . ': $er' . "\r\n" . - 'HR' . ': $hr' . "\r\n" . - 'BB' . ': $bb' . "\r\n" . - 'SO' . ': $so' . "\r\n" . - 'AVG' . ': $hits / $ab' . "\r\n" . - 'WHIP' . ': ( $hits + $walks ) / $ip' - ), - array( - 'W' . ': $wins' . "\r\n" . - 'L' . ': $losses' . "\r\n" . - 'ERA' . ': ( $er * 9 ) / $ip' . "\r\n" . - 'G' . ': $played' . "\r\n" . - 'AB' . ': $ab' . "\r\n" . - 'R' . ': $runs' . "\r\n" . - 'H' . ': $hits' . "\r\n" . - '2B' . ': $double' . "\r\n" . - '3B' . ': $triple' . "\r\n" . - 'HR' . ': $hr' . "\r\n" . - 'RBI' . ': $rbi' . "\r\n" . - 'BB' . ': $bb' . "\r\n" . - 'SO' . ': $so' . "\r\n" . - 'SB' . ': $sb' . "\r\n" . - 'CS' . ': $cs' . "\r\n" . - 'AVG' . ': $hits / $ab' . "\r\n" . - 'OBP' . ': ( $hits + $bb + $hbp ) / ( $ab + $bb + $hbp + $sf )' . "\r\n" . - 'SLG' . ': $tb / $ab' . "\r\n" . - 'OPS' . ': ( $hits + $bb + $hbp ) / ( $ab + $bb + $hbp + $sf ) + ( $tb / $ab )' - ) - ), - 'Basketball' => array( - 'team' => - 'W' . ': $wins' . "\r\n" . - 'L' . ': $losses' . "\r\n" . - 'Pct' . ': $wins / $played' . "\r\n" . - 'GB' . ': ( $leadwins - $leadlosses + $wins - $losses ) / 2' . "\r\n" . - 'Home' . ': $homewins $homelosses' . "\r\n" . - 'Road' . ': $awaywins $awaylosses' . "\r\n" . - 'L10' . ': $lastten' . "\r\n" . - 'Streak' . ': $streak', - 'event' => - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow Cards' . ': $yellowcards' . "\r\n" . - 'Red Cards' . ': $redcards', - 'player' => - 'Attendances' . ': $played' . "\r\n" . - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow Cards' . ': $yellowcards' . "\r\n" . - 'Red Cards' . ': $redcards' - ), - 'Cricket' => array( - 'team' => - 'P' . ': $played' . "\r\n" . - 'W' . ': $wins' . "\r\n" . - 'D' . ': $ties' . "\r\n" . - 'L' . ': $losses' . "\r\n" . - 'F' . ': $for' . "\r\n" . - 'A' . ': $against' . "\r\n" . - 'GD' . ': $for - $against' . "\r\n" . - 'PTS' . ': 3 * $wins + $ties', - 'event' => - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow Cards' . ': $yellowcards' . "\r\n" . - 'Red Cards' . ': $redcards', - 'player' => - 'Attendances' . ': $played' . "\r\n" . - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow Cards' . ': $yellowcards' . "\r\n" . - 'Red Cards' . ': $redcards' - ), - 'Football (USA)' => array( - 'team' => - 'P' . ': $played' . "\r\n" . - 'W' . ': $wins' . "\r\n" . - 'D' . ': $ties' . "\r\n" . - 'L' . ': $losses' . "\r\n" . - 'F' . ': $for' . "\r\n" . - 'A' . ': $against' . "\r\n" . - 'GD' . ': $for - $against' . "\r\n" . - 'PTS' . ': 3 * $wins + $ties', - 'event' => - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow Cards' . ': $yellowcards' . "\r\n" . - 'Red Cards' . ': $redcards', - 'player' => - 'Attendances' . ': $played' . "\r\n" . - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow Cards' . ': $yellowcards' . "\r\n" . - 'Red Cards' . ': $redcards' - ), - 'Footy (Australia)' => array( - 'team' => - 'P' . ': $played' . "\r\n" . - 'W' . ': $wins' . "\r\n" . - 'D' . ': $ties' . "\r\n" . - 'L' . ': $losses' . "\r\n" . - 'F' . ': $for' . "\r\n" . - 'A' . ': $against' . "\r\n" . - 'GD' . ': $for - $against' . "\r\n" . - 'PTS' . ': 3 * $wins + $ties', - 'event' => - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow Cards' . ': $yellowcards' . "\r\n" . - 'Red Cards' . ': $redcards', - 'player' => - 'Attendances' . ': $played' . "\r\n" . - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow Cards' . ': $yellowcards' . "\r\n" . - 'Red Cards' . ': $redcards' - ), - 'Hockey' => array( - 'team' => - 'P' . ': $played' . "\r\n" . - 'W' . ': $wins' . "\r\n" . - 'D' . ': $ties' . "\r\n" . - 'L' . ': $losses' . "\r\n" . - 'F' . ': $for' . "\r\n" . - 'A' . ': $against' . "\r\n" . - 'GD' . ': $for - $against' . "\r\n" . - 'PTS' . ': 3 * $wins + $ties', - 'event' => - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow Cards' . ': $yellowcards' . "\r\n" . - 'Red Cards' . ': $redcards', - 'player' => - 'Attendances' . ': $played' . "\r\n" . - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow Cards' . ': $yellowcards' . "\r\n" . - 'Red Cards' . ': $redcards' - ), - 'Rugby' => array( - 'team' => - 'P' . ': $played' . "\r\n" . - 'W' . ': $wins' . "\r\n" . - 'D' . ': $ties' . "\r\n" . - 'L' . ': $losses' . "\r\n" . - 'F' . ': $for' . "\r\n" . - 'A' . ': $against' . "\r\n" . - 'GD' . ': $for - $against' . "\r\n" . - 'PTS' . ': 3 * $wins + $ties', - 'event' => - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow' . ' Cards: $yellowcards' . "\r\n" . - 'Red' . ' Cards: $redcards', - 'player' => - 'Attendances' . ': $played' . "\r\n" . - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow' . ' Cards: $yellowcards' . "\r\n" . - 'Red' . ' Cards: $redcards' - ), - 'soccer' => array( - 'team' => - 'P' . ': $played' . "\r\n" . - 'W' . ': $wins' . "\r\n" . - 'D' . ': $ties' . "\r\n" . - 'L' . ': $losses' . "\r\n" . - 'F' . ': $for' . "\r\n" . - 'A' . ': $against' . "\r\n" . - 'GD' . ': $for - $against' . "\r\n" . - 'PTS' . ': 3 * $wins + $ties', - 'event' => - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow Cards' . ': $yellowcards' . "\r\n" . - 'Red Cards' . ': $redcards', - 'player' => - 'Attendances' . ': $played' . "\r\n" . - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow Cards' . ': $yellowcards' . "\r\n" . - 'Red Cards' . ': $redcards' - ), - 'Tennis' => array( - 'team' => - 'P' . ': $played' . "\r\n" . - 'W' . ': $wins' . "\r\n" . - 'D' . ': $ties' . "\r\n" . - 'L' . ': $losses' . "\r\n" . - 'F' . ': $for' . "\r\n" . - 'A' . ': $against' . "\r\n" . - 'GD' . ': $for - $against' . "\r\n" . - 'PTS' . ': 3 * $wins + $ties', - 'event' => - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow' . ' Cards: $yellowcards' . "\r\n" . - 'Red' . ' Cards: $redcards', - 'player' => - 'Attendances' . ': $played' . "\r\n" . - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow' . ' Cards: $yellowcards' . "\r\n" . - 'Red' . ' Cards: $redcards' - ), - 'Volleyball' => array( - 'team' => - 'P' . ': $played' . "\r\n" . - 'W' . ': $wins' . "\r\n" . - 'D' . ': $ties' . "\r\n" . - 'L' . ': $losses' . "\r\n" . - 'F' . ': $for' . "\r\n" . - 'A' . ': $against' . "\r\n" . - 'GD' . ': $for - $against' . "\r\n" . - 'PTS' . ': 3 * $wins + $ties', - 'event' => - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow' . ' Cards: $yellowcards' . "\r\n" . - 'Red' . ' Cards: $redcards', - 'player' => - 'Attendances' . ': $played' . "\r\n" . - 'Goals' . ': $goals' . "\r\n" . - 'Assists' . ': $assists' . "\r\n" . - 'Yellow' . ' Cards: $yellowcards' . "\r\n" . - 'Red' . ' Cards: $redcards' - ) -); - $sportspress_texts = array( 'sp_team' => array( 'Enter title here' => __( 'Team', 'sportspress' ), @@ -339,9 +54,9 @@ $sportspress_thumbnail_texts = array( $sportspress_options = array( 'settings' => array( 'sp_event_team_count' => 2, - 'sp_team_stats_columns' => $sportspress_sports['soccer']['team'], - 'sp_event_stats_columns' => $sportspress_sports['soccer']['event'], - 'sp_player_stats_columns' => $sportspress_sports['soccer']['player'] + 'sp_team_stats_columns' => '', + 'sp_event_stats_columns' => '', + 'sp_player_stats_columns' => '' ) ); diff --git a/helpers.php b/helpers.php index 67a2263a..912a338a 100644 --- a/helpers.php +++ b/helpers.php @@ -254,6 +254,18 @@ if ( !function_exists( 'sp_get_eos_array' ) ) { } } +if ( !function_exists( 'sp_get_eos_keys' ) ) { + function sp_get_eos_keys( $raw ) { + $raw = str_replace( array( "\r\n", ' :' ), array( "\n", ':' ), $raw ); + $arr = explode( "\n", $raw ); + $output = array(); + foreach ( $arr as $value ): + $output[] = substr( $value, 0, strpos( $value, ':') ); + endforeach; + return $output; + } +} + if ( !function_exists( 'sp_get_stats_row' ) ) { function sp_get_stats_row( $post_type = 'post', $args = array(), $static = false ) { $args = array_merge( @@ -269,6 +281,8 @@ if ( !function_exists( 'sp_get_stats_row' ) ) { $vars = array(); + $stats_settings = get_option( 'sportspress_stats' ); + // Get dynamic stats switch ($post_type): case 'sp_team': @@ -289,7 +303,7 @@ if ( !function_exists( 'sp_get_stats_row' ) ) { $vars['against'] = 0; foreach( $posts as $post ): $result = $post->sp_result; unset( $result[ $post->sp_team_index ] ); $vars['against'] += array_sum( $result ); endforeach; // Get EOS array - $rows = sp_get_eos_array( get_option( 'sp_team_stats_columns' ) ); + $rows = sp_get_eos_array( $stats_settings['team'] ); break; case 'sp_player': @@ -335,7 +349,7 @@ if ( !function_exists( 'sp_get_stats_row' ) ) { $dynamic = array(); foreach ( $rows as $key => $value ): $row = explode( ':', $value ); - $dynamic[] = $eos->solveIF( sp_array_value( $row, 1, '$played'), $vars ); + $dynamic[ $key ] = $eos->solveIF( sp_array_value( $row, 1, '$played'), $vars ); endforeach; if ( $static ): @@ -364,10 +378,10 @@ if ( !function_exists( 'sp_get_stats_row' ) ) { } if ( !function_exists( 'sp_stats_table' ) ) { - function sp_stats_table( $stats = array(), $placeholders = array(), $index = 0, $columns = array( 'Name' ), $total = true, $rowtype = 'post', $slug = 'sp_stats' ) { + function sp_stats_table( $stats = array(), $placeholders = array(), $index = 0, $columns = array(), $total = true, $rowtype = 'post', $slug = 'sp_stats' ) { global $pagenow; if ( !is_array( $stats ) ) - $stats = array(); + $stats = array( __( 'Name', 'sportspress' ) ); ?> @@ -428,6 +442,7 @@ if ( !function_exists( 'sp_stats_table' ) ) { } } +/* if ( !function_exists( 'sp_team_stats_sport_choice' ) ) { function sp_team_stats_sport_choice( $selected = null ) { global $sportspress_sports; @@ -440,6 +455,7 @@ if ( !function_exists( 'sp_team_stats_sport_choice' ) ) { ' . $value . ''; + break; + default: + echo ''; + break; + endswitch; + + } +} ?> \ No newline at end of file diff --git a/player.php b/player.php index 12bb2f5f..d4cb00eb 100644 --- a/player.php +++ b/player.php @@ -38,6 +38,13 @@ function sp_player_stats_meta( $post ) { $leagues = (array)get_the_terms( $post->ID, 'sp_league' ); $stats = (array)get_post_meta( $post->ID, 'sp_stats', true ); + // Get column names from settings + $stats_settings = get_option( 'sportspress_stats' ); + $columns = sp_get_eos_keys( $stats_settings['player'] ); + + // Add first column label + array_unshift( $columns, __( 'League', 'sportspress' ) ); + // Generate array of all league ids $league_ids = array( 0 ); foreach ( $leagues as $key => $value ): @@ -73,9 +80,10 @@ function sp_player_stats_meta( $post ) { endforeach; ?>

-

- + array( + 'team' => + 'P' . ': $played' . "\r\n" . + 'W' . ': $wins' . "\r\n" . + 'D' . ': $ties' . "\r\n" . + 'L' . ': $losses' . "\r\n" . + 'F' . ': $for' . "\r\n" . + 'A' . ': $against' . "\r\n" . + 'GD' . ': $for - $against' . "\r\n" . + 'PTS' . ': 3 * $wins + $ties', + 'event' => + '1' . ': $first' . "\r\n" . + '2' . ': $second' . "\r\n" . + '3' . ': $third' . "\r\n" . + '4' . ': $fourth' . "\r\n" . + '5' . ': $fifth' . "\r\n" . + '6' . ': $sixth' . "\r\n" . + '7' . ': $seventh' . "\r\n" . + '8' . ': $eigth' . "\r\n" . + '9' . ': $ninth' . "\r\n" . + ' ' . ': $extra' . "\r\n" . + 'R' . ': $runs' . "\r\n" . + 'H' . ': $hits' . "\r\n" . + 'E' . ': $errors:' . "\r\n" . + 'LOB' . ': $lob', + 'player' => + array( + 'G' . ': $played' . "\r\n" . + 'AB' . ': $ab' . "\r\n" . + 'R' . ': $runs' . "\r\n" . + 'H' . ': $hits' . "\r\n" . + '2B' . ': $double' . "\r\n" . + '3B' . ': $triple' . "\r\n" . + 'HR' . ': $hr' . "\r\n" . + 'RBI' . ': $rbi' . "\r\n" . + 'BB' . ': $bb' . "\r\n" . + 'SO' . ': $so' . "\r\n" . + 'SB' . ': $sb' . "\r\n" . + 'CS' . ': $cs' . "\r\n" . + 'AVG' . ': $hits / $ab' . "\r\n" . + 'OBP' . ': ( $hits + $bb + $hbp ) / ( $ab + $bb + $hbp + $sf )' . "\r\n" . + 'SLG' . ': $tb / $ab' . "\r\n" . + 'OPS' . ': ( $hits + $bb + $hbp ) / ( $ab + $bb + $hbp + $sf ) + ( $tb / $ab )' + ), + array( + 'W' . ': $wins' . "\r\n" . + 'L' . ': $losses' . "\r\n" . + 'ERA' . ': ( $er * 9 ) / $ip' . "\r\n" . + 'G' . ': $played' . "\r\n" . + 'GS' . ': $gs' . "\r\n" . + 'SV' . ': $sv' . "\r\n" . + 'SVO' . ': $svo' . "\r\n" . + 'IP' . ': $ip' . "\r\n" . + 'H' . ': $hits' . "\r\n" . + 'R' . ': $runs' . "\r\n" . + 'ER' . ': $er' . "\r\n" . + 'HR' . ': $hr' . "\r\n" . + 'BB' . ': $bb' . "\r\n" . + 'SO' . ': $so' . "\r\n" . + 'AVG' . ': $hits / $ab' . "\r\n" . + 'WHIP' . ': ( $hits + $walks ) / $ip' + ), + array( + 'W' . ': $wins' . "\r\n" . + 'L' . ': $losses' . "\r\n" . + 'ERA' . ': ( $er * 9 ) / $ip' . "\r\n" . + 'G' . ': $played' . "\r\n" . + 'AB' . ': $ab' . "\r\n" . + 'R' . ': $runs' . "\r\n" . + 'H' . ': $hits' . "\r\n" . + '2B' . ': $double' . "\r\n" . + '3B' . ': $triple' . "\r\n" . + 'HR' . ': $hr' . "\r\n" . + 'RBI' . ': $rbi' . "\r\n" . + 'BB' . ': $bb' . "\r\n" . + 'SO' . ': $so' . "\r\n" . + 'SB' . ': $sb' . "\r\n" . + 'CS' . ': $cs' . "\r\n" . + 'AVG' . ': $hits / $ab' . "\r\n" . + 'OBP' . ': ( $hits + $bb + $hbp ) / ( $ab + $bb + $hbp + $sf )' . "\r\n" . + 'SLG' . ': $tb / $ab' . "\r\n" . + 'OPS' . ': ( $hits + $bb + $hbp ) / ( $ab + $bb + $hbp + $sf ) + ( $tb / $ab )' + ) + ), + 'Basketball' => array( + 'team' => + 'W' . ': $wins' . "\r\n" . + 'L' . ': $losses' . "\r\n" . + 'Pct' . ': $wins / $played' . "\r\n" . + 'GB' . ': ( $leadwins - $leadlosses + $wins - $losses ) / 2' . "\r\n" . + 'Home' . ': $homewins $homelosses' . "\r\n" . + 'Road' . ': $awaywins $awaylosses' . "\r\n" . + 'L10' . ': $lastten' . "\r\n" . + 'Streak' . ': $streak', + 'event' => + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow Cards' . ': $yellowcards' . "\r\n" . + 'Red Cards' . ': $redcards', + 'player' => + 'Attendances' . ': $played' . "\r\n" . + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow Cards' . ': $yellowcards' . "\r\n" . + 'Red Cards' . ': $redcards' + ), + 'Cricket' => array( + 'team' => + 'P' . ': $played' . "\r\n" . + 'W' . ': $wins' . "\r\n" . + 'D' . ': $ties' . "\r\n" . + 'L' . ': $losses' . "\r\n" . + 'F' . ': $for' . "\r\n" . + 'A' . ': $against' . "\r\n" . + 'GD' . ': $for - $against' . "\r\n" . + 'PTS' . ': 3 * $wins + $ties', + 'event' => + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow Cards' . ': $yellowcards' . "\r\n" . + 'Red Cards' . ': $redcards', + 'player' => + 'Attendances' . ': $played' . "\r\n" . + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow Cards' . ': $yellowcards' . "\r\n" . + 'Red Cards' . ': $redcards' + ), + 'Football (USA)' => array( + 'team' => + 'P' . ': $played' . "\r\n" . + 'W' . ': $wins' . "\r\n" . + 'D' . ': $ties' . "\r\n" . + 'L' . ': $losses' . "\r\n" . + 'F' . ': $for' . "\r\n" . + 'A' . ': $against' . "\r\n" . + 'GD' . ': $for - $against' . "\r\n" . + 'PTS' . ': 3 * $wins + $ties', + 'event' => + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow Cards' . ': $yellowcards' . "\r\n" . + 'Red Cards' . ': $redcards', + 'player' => + 'Attendances' . ': $played' . "\r\n" . + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow Cards' . ': $yellowcards' . "\r\n" . + 'Red Cards' . ': $redcards' + ), + 'Footy (Australia)' => array( + 'team' => + 'P' . ': $played' . "\r\n" . + 'W' . ': $wins' . "\r\n" . + 'D' . ': $ties' . "\r\n" . + 'L' . ': $losses' . "\r\n" . + 'F' . ': $for' . "\r\n" . + 'A' . ': $against' . "\r\n" . + 'GD' . ': $for - $against' . "\r\n" . + 'PTS' . ': 3 * $wins + $ties', + 'event' => + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow Cards' . ': $yellowcards' . "\r\n" . + 'Red Cards' . ': $redcards', + 'player' => + 'Attendances' . ': $played' . "\r\n" . + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow Cards' . ': $yellowcards' . "\r\n" . + 'Red Cards' . ': $redcards' + ), + 'Hockey' => array( + 'team' => + 'P' . ': $played' . "\r\n" . + 'W' . ': $wins' . "\r\n" . + 'D' . ': $ties' . "\r\n" . + 'L' . ': $losses' . "\r\n" . + 'F' . ': $for' . "\r\n" . + 'A' . ': $against' . "\r\n" . + 'GD' . ': $for - $against' . "\r\n" . + 'PTS' . ': 3 * $wins + $ties', + 'event' => + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow Cards' . ': $yellowcards' . "\r\n" . + 'Red Cards' . ': $redcards', + 'player' => + 'Attendances' . ': $played' . "\r\n" . + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow Cards' . ': $yellowcards' . "\r\n" . + 'Red Cards' . ': $redcards' + ), + 'Rugby' => array( + 'team' => + 'P' . ': $played' . "\r\n" . + 'W' . ': $wins' . "\r\n" . + 'D' . ': $ties' . "\r\n" . + 'L' . ': $losses' . "\r\n" . + 'F' . ': $for' . "\r\n" . + 'A' . ': $against' . "\r\n" . + 'GD' . ': $for - $against' . "\r\n" . + 'PTS' . ': 3 * $wins + $ties', + 'event' => + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow' . ' Cards: $yellowcards' . "\r\n" . + 'Red' . ' Cards: $redcards', + 'player' => + 'Attendances' . ': $played' . "\r\n" . + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow' . ' Cards: $yellowcards' . "\r\n" . + 'Red' . ' Cards: $redcards' + ), + 'soccer' => array( + 'team' => + 'P' . ': $played' . "\r\n" . + 'W' . ': $wins' . "\r\n" . + 'D' . ': $ties' . "\r\n" . + 'L' . ': $losses' . "\r\n" . + 'F' . ': $for' . "\r\n" . + 'A' . ': $against' . "\r\n" . + 'GD' . ': $for - $against' . "\r\n" . + 'PTS' . ': 3 * $wins + $ties', + 'event' => + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow Cards' . ': $yellowcards' . "\r\n" . + 'Red Cards' . ': $redcards', + 'player' => + 'Attendances' . ': $played' . "\r\n" . + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow Cards' . ': $yellowcards' . "\r\n" . + 'Red Cards' . ': $redcards' + ), + 'Tennis' => array( + 'team' => + 'P' . ': $played' . "\r\n" . + 'W' . ': $wins' . "\r\n" . + 'D' . ': $ties' . "\r\n" . + 'L' . ': $losses' . "\r\n" . + 'F' . ': $for' . "\r\n" . + 'A' . ': $against' . "\r\n" . + 'GD' . ': $for - $against' . "\r\n" . + 'PTS' . ': 3 * $wins + $ties', + 'event' => + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow' . ' Cards: $yellowcards' . "\r\n" . + 'Red' . ' Cards: $redcards', + 'player' => + 'Attendances' . ': $played' . "\r\n" . + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow' . ' Cards: $yellowcards' . "\r\n" . + 'Red' . ' Cards: $redcards' + ), + 'Volleyball' => array( + 'team' => + 'P' . ': $played' . "\r\n" . + 'W' . ': $wins' . "\r\n" . + 'D' . ': $ties' . "\r\n" . + 'L' . ': $losses' . "\r\n" . + 'F' . ': $for' . "\r\n" . + 'A' . ': $against' . "\r\n" . + 'GD' . ': $for - $against' . "\r\n" . + 'PTS' . ': 3 * $wins + $ties', + 'event' => + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow' . ' Cards: $yellowcards' . "\r\n" . + 'Red' . ' Cards: $redcards', + 'player' => + 'Attendances' . ': $played' . "\r\n" . + 'Goals' . ': $goals' . "\r\n" . + 'Assists' . ': $assists' . "\r\n" . + 'Yellow' . ' Cards: $yellowcards' . "\r\n" . + 'Red' . ' Cards: $redcards' + ) +); +?> \ No newline at end of file diff --git a/settings.php b/settings.php index ae20546f..a3763b8a 100644 --- a/settings.php +++ b/settings.php @@ -1,7 +1,7 @@ + ?>test

+
+ +
+ + + + + + +
+ + +

+ +

+
+ + + + + +
+ +
+

+ + + + + + +
+ +
+ +
+ - - - - - - -
-

-

- -

-
+/* ------------------------------------------------------------------------ * + * Setting Registration + * ------------------------------------------------------------------------ */ - - - - \ No newline at end of file + +/** + * Provides default values for the Statistics. + */ +function sportspress_default_stats() { + + $defaults = array( + 'team' => '', + 'event' => '', + 'player' => '', + 'staff' => 'Staff settings', + ); + + return apply_filters( 'sportspress_default_stats', $defaults ); + +} // end sportspress_default_stats + +/** + * Provides default values for the Display Options. + */ +function sportspress_default_display_options() { + + $defaults = array( + 'show_header' => '', + 'show_content' => '', + 'show_footer' => '', + ); + + return apply_filters( 'sportspress_default_display_options', $defaults ); + +} // end sportspress_default_display_options + +/** + * Provides default values for the Input Options. + */ +function sportspress_default_input_options() { + + $defaults = array( + 'input_example' => '', + 'textarea_example' => '', + 'checkbox_example' => '', + 'radio_example' => '', + 'time_options' => 'default' + ); + + return apply_filters( 'sportspress_default_input_options', $defaults ); + +} // end sportspress_default_input_options + +/** + * Initializes the theme's display options page by registering the Sections, + * Fields, and Settings. + * + * This function is registered with the 'admin_init' hook. + */ +function sportspress_initialize_theme_options() { + + // If the theme options don't exist, create them. + if ( false == get_option( 'sportspress_settings_options' ) ) { + add_option( 'sportspress_settings_options', apply_filters( 'sportspress_default_display_options', sportspress_default_display_options() ) ); + } // end if + + // First, we register a section. This is necessary since all future options must belong to a + add_settings_section( + 'general_settings_section', // ID used to identify this section and with which to register options + __( 'Display Options', 'sportspress' ), // Title to be displayed on the administration page + '', // Callback used to render the description of the section + 'sportspress_settings_options' // Page on which to add this section of options + ); + + // Next, we'll introduce the fields for toggling the visibility of content elements. + add_settings_field( + 'show_header', // ID used to identify the field throughout the theme + __( 'Header', 'sportspress' ), // The label to the left of the option interface element + 'sportspress_toggle_header_callback', // The name of the function responsible for rendering the option interface + 'sportspress_settings_options', // The page on which this option will be displayed + 'general_settings_section', // The name of the section to which this field belongs + array( // The array of arguments to pass to the callback. In this case, just a description. + __( 'Activate this setting to display the header.', 'sportspress' ), + ) + ); + + add_settings_field( + 'show_content', + __( 'Content', 'sportspress' ), + 'sportspress_toggle_content_callback', + 'sportspress_settings_options', + 'general_settings_section', + array( + __( 'Activate this setting to display the content.', 'sportspress' ), + ) + ); + + add_settings_field( + 'show_footer', + __( 'Footer', 'sportspress' ), + 'sportspress_toggle_footer_callback', + 'sportspress_settings_options', + 'general_settings_section', + array( + __( 'Activate this setting to display the footer.', 'sportspress' ), + ) + ); + + // Finally, we register the fields with WordPress + register_setting( + 'sportspress_settings_options', + 'sportspress_settings_options' + ); + +} // end sportspress_initialize_theme_options +add_action( 'admin_init', 'sportspress_initialize_theme_options' ); + +/** + * Initializes the theme's social options by registering the Sections, + * Fields, and Settings. + * + * This function is registered with the 'admin_init' hook. + */ +function sportspress_intialize_stats() { + + if( false == get_option( 'sportspress_stats' ) ) { + add_option( 'sportspress_stats', apply_filters( 'sportspress_default_stats', sportspress_default_stats() ) ); + } // end if + + add_settings_section( + 'sportspress_team_stats', // ID used to identify this section and with which to register options + __( 'Teams', 'sportspress' ), // Title to be displayed on the administration page + '', // Callback used to render the description of the section + 'sportspress_stats' // Page on which to add this section of options + ); + + add_settings_section( + 'sportspress_event_stats', // ID used to identify this section and with which to register options + __( 'Events', 'sportspress' ), // Title to be displayed on the administration page + '', // Callback used to render the description of the section + 'sportspress_stats' // Page on which to add this section of options + ); + + add_settings_section( + 'sportspress_player_stats', // ID used to identify this section and with which to register options + __( 'Players', 'sportspress' ), // Title to be displayed on the administration page + '', // Callback used to render the description of the section + 'sportspress_stats' // Page on which to add this section of options + ); + + add_settings_field( + 'team', + __( 'Statistics', 'sportspress' ), + 'sportspress_team_stats_callback', + 'sportspress_stats', + 'sportspress_team_stats' + ); + + add_settings_field( + 'event_team', + __( 'Teams', 'sportspress' ), + 'sportspress_event_team_stats_callback', + 'sportspress_stats', + 'sportspress_event_stats' + ); + + add_settings_field( + 'event_player', + __( 'Players', 'sportspress' ), + 'sportspress_event_player_stats_callback', + 'sportspress_stats', + 'sportspress_event_stats' + ); + + add_settings_field( + 'player', + __( 'Statistics', 'sportspress' ), + 'sportspress_player_stats_callback', + 'sportspress_stats', + 'sportspress_player_stats' + ); + + register_setting( + 'sportspress_stats', + 'sportspress_stats' + ); + +} // end sportspress_intialize_stats +add_action( 'admin_init', 'sportspress_intialize_stats' ); + +/** + * Initializes the theme's input example by registering the Sections, + * Fields, and Settings. This particular group of options is used to demonstration + * validation and sanitization. + * + * This function is registered with the 'admin_init' hook. + */ +function sportspress_initialize_input_examples() { + + if( false == get_option( 'sportspress_input_examples' ) ) { + add_option( 'sportspress_input_examples', apply_filters( 'sportspress_default_input_options', sportspress_default_input_options() ) ); + } // end if + + add_settings_section( + 'input_examples_section', + __( 'Input Examples', 'sportspress' ), + '', + 'sportspress_input_examples' + ); + + add_settings_field( + 'Input Element', + __( 'Input Element', 'sportspress' ), + 'sportspress_input_element_callback', + 'sportspress_input_examples', + 'input_examples_section' + ); + + add_settings_field( + 'Textarea Element', + __( 'Textarea Element', 'sportspress' ), + 'sportspress_textarea_element_callback', + 'sportspress_input_examples', + 'input_examples_section' + ); + + add_settings_field( + 'Checkbox Element', + __( 'Checkbox Element', 'sportspress' ), + 'sportspress_checkbox_element_callback', + 'sportspress_input_examples', + 'input_examples_section' + ); + + add_settings_field( + 'Radio Button Elements', + __( 'Radio Button Elements', 'sportspress' ), + 'sportspress_radio_element_callback', + 'sportspress_input_examples', + 'input_examples_section' + ); + + add_settings_field( + 'Select Element', + __( 'Select Element', 'sportspress' ), + 'sportspress_select_element_callback', + 'sportspress_input_examples', + 'input_examples_section' + ); + + register_setting( + 'sportspress_input_examples', + 'sportspress_input_examples', + 'sportspress_validate_input_examples' + ); + +} // end sportspress_initialize_input_examples +add_action( 'admin_init', 'sportspress_initialize_input_examples' ); + +/* ------------------------------------------------------------------------ * + * Field Callbacks + * ------------------------------------------------------------------------ */ + +/** + * This function renders the interface elements for toggling the visibility of the header element. + * + * It accepts an array or arguments and expects the first element in the array to be the description + * to be displayed next to the checkbox. + */ +function sportspress_toggle_header_callback($args) { + + // First, we read the options collection + $options = get_option('sportspress_settings_options'); + + // Next, we update the name attribute to access this element's ID in the context of the display options array + // We also access the show_header element of the options collection in the call to the checked() helper function + $html = ''; + + // Here, we'll take the first argument of the array and add it to a label next to the checkbox + $html .= ''; + + echo $html; + +} // end sportspress_toggle_header_callback + +function sportspress_toggle_content_callback($args) { + + $options = get_option('sportspress_settings_options'); + + $html = ''; + $html .= ''; + + echo $html; + +} // end sportspress_toggle_content_callback + +function sportspress_toggle_footer_callback($args) { + + $options = get_option('sportspress_settings_options'); + + $html = ''; + $html .= ''; + + echo $html; + +} // end sportspress_toggle_footer_callback + +function sportspress_team_stats_callback() { + sportspress_render_option_field( 'sportspress_stats', 'team', 'textarea' ); +} + +function sportspress_event_team_stats_callback() { + sportspress_render_option_field( 'sportspress_stats', 'event_team', 'textarea' ); +} + +function sportspress_event_player_stats_callback() { + sportspress_render_option_field( 'sportspress_stats', 'event_player', 'textarea' ); +} + +function sportspress_player_stats_callback() { + sportspress_render_option_field( 'sportspress_stats', 'player', 'textarea' ); +} + +function sportspress_input_element_callback() { + + $options = get_option( 'sportspress_input_examples' ); + + // Render the output + echo ''; + +} // end sportspress_input_element_callback + +function sportspress_textarea_element_callback() { + + $options = get_option( 'sportspress_input_examples' ); + + // Render the output + echo ''; + +} // end sportspress_textarea_element_callback + +function sportspress_checkbox_element_callback() { + + $options = get_option( 'sportspress_input_examples' ); + + $html = ''; + $html .= ' '; + $html .= ''; + + echo $html; + +} // end sportspress_checkbox_element_callback + +function sportspress_radio_element_callback() { + + $options = get_option( 'sportspress_input_examples' ); + + $html = ''; + $html .= ' '; + $html .= ''; + $html .= ' '; + $html .= ''; + $html .= ' '; + $html .= ''; + + echo $html; + +} // end sportspress_radio_element_callback + +function sportspress_select_element_callback() { + + $options = get_option( 'sportspress_input_examples' ); + + $html = ''; + + echo $html; + +} // end sportspress_radio_element_callback + +/* ------------------------------------------------------------------------ * + * Setting Callbacks + * ------------------------------------------------------------------------ */ + +/** + * Sanitization callback for the social options. Since each of the social options are text inputs, + * this function loops through the incoming option and strips all tags and slashes from the value + * before serializing it. + * + * @params $input The unsanitized collection of options. + * + * @returns The collection of sanitized values. + */ +function sportspress_sanitize_stats( $input ) { + + // Define the array for the updated options + $output = array(); + + // Loop through each of the options sanitizing the data + foreach( $input as $key => $val ) { + + if( isset ( $input[$key] ) ) { + $output[$key] = esc_url_raw( strip_tags( stripslashes( $input[$key] ) ) ); + } // end if + + } // end foreach + + // Return the new collection + return apply_filters( 'sportspress_sanitize_stats', $output, $input ); + +} // end sportspress_sanitize_stats + +function sportspress_validate_input_examples( $input ) { + + // Create our array for storing the validated options + $output = array(); + + // Loop through each of the incoming options + foreach( $input as $key => $value ) { + + // Check to see if the current option has a value. If so, process it. + if( isset( $input[$key] ) ) { + + // Strip all HTML and PHP tags and properly handle quoted strings + $output[$key] = strip_tags( stripslashes( $input[ $key ] ) ); + + } // end if + + } // end foreach + + // Return the array processing any additional functions filtered by this action + return apply_filters( 'sportspress_validate_input_examples', $output, $input ); + +} // end sportspress_validate_input_examples + +?> \ No newline at end of file diff --git a/styles.php b/styles.php index d0aea719..c5a00fa9 100644 --- a/styles.php +++ b/styles.php @@ -7,12 +7,11 @@ function sp_enqueue_styles() { } //add_action( 'wp_print_styles', 'sp_enqueue_styles' ); -function sp_admin_styles_init() { -// wp_enqueue_style( 'thickbox' ); +function sp_admin_styles() { wp_register_style( 'sportspress-admin.css', SPORTSPRESS_PLUGIN_URL . 'sportspress-admin.css', array(), '1.0' ); wp_enqueue_style( 'sportspress-admin.css'); } -add_action( 'admin_init', 'sp_admin_styles_init' ); +add_action( 'admin_init', 'sp_admin_styles' ); function sp_adminbar_enqueue_styles() { wp_register_style( 'adminbar-stylesheet', get_template_directory_uri() . '/css/adminbar.css' ); diff --git a/team.php b/team.php index b465abad..95a4da2d 100644 --- a/team.php +++ b/team.php @@ -73,7 +73,14 @@ function sp_team_stats_meta( $post ) { $placeholders[ $league_id ] = sp_get_stats_row( 'sp_team', $args ); endforeach; - sp_stats_table( $data, $placeholders, 0, array( 'League', 'P', 'W', 'D', 'L', 'F', 'A', 'GD', 'Pts' ), false, 'sp_league' ); + // Get column names from settings + $stats_settings = get_option( 'sportspress_stats' ); + $columns = sp_get_eos_keys( $stats_settings['team'] ); + + // Add first column label + array_unshift( $columns, __( 'League', 'sportspress' ) ); + + sp_stats_table( $data, $placeholders, 0, $columns, false, 'sp_league' ); sp_nonce(); } ?> \ No newline at end of file