Merge pull request #304 from ThemeBoy/feature-flexible-player-list-shortcode

Make the Player List shortcode more flexible (selection of Season, Le…
This commit is contained in:
Brian Miyaji
2018-10-12 15:48:03 +11:00
committed by GitHub
3 changed files with 65 additions and 5 deletions

View File

@@ -1071,6 +1071,48 @@ class SP_AJAX {
?>
</label>
</p>
<p>
<label>
<?php _e( 'Team:', 'sportspress' ); ?>
<?php
$args = array(
'post_type' => 'sp_team',
'show_option_all' => __( 'Default', 'sportspress' ),
'name' => 'team',
'values' => 'ID',
);
sp_dropdown_pages( $args );
?>
</label>
</p>
<p>
<label>
<?php _e( 'League:', 'sportspress' ); ?>
<?php
$args = array(
'taxonomy' => 'sp_league',
'show_option_all' => __( 'Default', 'sportspress' ),
'name' => 'league',
'values' => 'term_id',
);
sp_dropdown_taxonomies( $args );
?>
</label>
</p>
<p>
<label>
<?php _e( 'Season:', 'sportspress' ); ?>
<?php
$args = array(
'taxonomy' => 'sp_season',
'show_option_all' => __( 'Default', 'sportspress' ),
'name' => 'season',
'values' => 'term_id',
);
sp_dropdown_taxonomies( $args );
?>
</label>
</p>
<p>
<label>
<?php _e( 'Number of players to show:', 'sportspress' ); ?>
@@ -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();

View File

@@ -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 );

View File

@@ -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];