diff --git a/includes/class-sp-ajax.php b/includes/class-sp-ajax.php index 36a17dd5..4f89340e 100644 --- a/includes/class-sp-ajax.php +++ b/includes/class-sp-ajax.php @@ -1071,6 +1071,48 @@ class SP_AJAX { ?>
+ + + 'sp_team', + 'show_option_all' => __( 'Default', 'sportspress' ), + 'name' => 'team', + 'values' => 'ID', + ); + sp_dropdown_pages( $args ); + ?> + +
+ + + 'sp_league', + 'show_option_all' => __( 'Default', 'sportspress' ), + 'name' => 'league', + 'values' => 'term_id', + ); + sp_dropdown_taxonomies( $args ); + ?> + +
+ + + 'sp_season', + 'show_option_all' => __( 'Default', 'sportspress' ), + 'name' => 'season', + 'values' => 'term_id', + ); + sp_dropdown_taxonomies( $args ); + ?> + +
@@ -1315,6 +1357,9 @@ class SP_AJAX { } else if ( 'player_list' == type ) { args.title = $div.find('[name=title]').val(); args.number = $div.find('[name=number]').val(); + args.team = $div.find('[name=team]').val(); + args.seasons = $div.find('[name=season]').val(); + args.leagues = $div.find('[name=league]').val(); args.columns = $div.find('[name="columns[]"]:checked').map(function() { return this.value; }).get().join(','); args.orderby = $div.find('[name=orderby]').val(); args.order = $div.find('[name=order]').val(); diff --git a/includes/class-sp-player-list.php b/includes/class-sp-player-list.php index b1c369af..c5decfb3 100644 --- a/includes/class-sp-player-list.php +++ b/includes/class-sp-player-list.php @@ -35,11 +35,23 @@ class SP_Player_List extends SP_Secondary_Post { * @param bool $admin * @return array */ - public function data( $admin = false ) { - $league_ids = sp_get_the_term_ids( $this->ID, 'sp_league' ); - $season_ids = sp_get_the_term_ids( $this->ID, 'sp_season' ); + public function data( $admin = false, $leagues = null, $seasons = null, $team_id = null ) { + if ( !is_null( $leagues ) && '0' != $leagues ) { + $league_ids = explode( ",", $leagues ); + }else{ + $league_ids = sp_get_the_term_ids( $this->ID, 'sp_league' ); + } + if ( !is_null( $seasons ) && '0' != $seasons ) { + $season_ids = explode( ",", $seasons ); + }else{ + $season_ids = sp_get_the_term_ids( $this->ID, 'sp_season' ); + } $position_ids = sp_get_the_term_ids( $this->ID, 'sp_position' ); - $team = get_post_meta( $this->ID, 'sp_team', true ); + if ( !is_null( $team_id ) && '0' != $team_id ) { + $team = $team_id; + }else{ + $team = get_post_meta( $this->ID, 'sp_team', true ); + } $era = get_post_meta( $this->ID, 'sp_era', true ); $list_stats = (array)get_post_meta( $this->ID, 'sp_players', true ); $adjustments = get_post_meta( $this->ID, 'sp_adjustments', true ); diff --git a/templates/player-list.php b/templates/player-list.php index 808c308c..ab3780ab 100644 --- a/templates/player-list.php +++ b/templates/player-list.php @@ -29,6 +29,9 @@ $defaults = array( 'scrollable' => get_option( 'sportspress_enable_scrollable_tables', 'yes' ) == 'yes' ? true : false, 'paginated' => get_option( 'sportspress_list_paginated', 'yes' ) == 'yes' ? true : false, 'rows' => get_option( 'sportspress_list_rows', 10 ), + 'leagues' => null, + 'seasons' => null, + 'team' => null, ); extract( $defaults, EXTR_SKIP ); @@ -51,7 +54,7 @@ $list = new SP_Player_List( $id ); if ( isset( $columns ) && null !== $columns ): $list->columns = $columns; endif; -$data = $list->data(); +$data = $list->data( false, $leagues, $seasons, $team ); // The first row should be labels $labels = $data[0];