Add option to make tables sortable and responsive
This commit is contained in:
@@ -51,6 +51,14 @@ class SportsPressPlayerSettingsPage {
|
|||||||
'list'
|
'list'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
add_settings_field(
|
||||||
|
'players',
|
||||||
|
__( 'Players', 'sportspress' ),
|
||||||
|
array( $this, 'players_callback' ),
|
||||||
|
'sportspress_players',
|
||||||
|
'list'
|
||||||
|
);
|
||||||
|
|
||||||
add_settings_field(
|
add_settings_field(
|
||||||
'metrics',
|
'metrics',
|
||||||
__( 'Metrics', 'sportspress' ),
|
__( 'Metrics', 'sportspress' ),
|
||||||
@@ -82,13 +90,21 @@ class SportsPressPlayerSettingsPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function list_callback() {
|
function list_callback() {
|
||||||
$link_posts = sportspress_array_value( $this->options, 'player_list_link_posts', true );
|
$responsive = sportspress_array_value( $this->options, 'player_list_responsive', true );
|
||||||
|
$sortable = sportspress_array_value( $this->options, 'player_list_sortable', true );
|
||||||
?>
|
?>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<label for="sportspress_player_list_link_posts">
|
<label for="sportspress_player_list_responsive">
|
||||||
<input id="sportspress_player_list_link_posts_default" name="sportspress[player_list_link_posts]" type="hidden" value="0">
|
<input id="sportspress_player_list_responsive_default" name="sportspress[player_list_responsive]" type="hidden" value="0">
|
||||||
<input id="sportspress_player_list_link_posts" name="sportspress[player_list_link_posts]" type="checkbox" value="1" <?php checked( $link_posts ); ?>>
|
<input id="sportspress_player_list_responsive" name="sportspress[player_list_responsive]" type="checkbox" value="1" <?php checked( $responsive ); ?>>
|
||||||
<?php _e( 'Display players as links', 'sportspress' ); ?>
|
<?php _e( 'Responsive', 'sportspress' ); ?>
|
||||||
|
</label>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<label for="sportspress_player_list_sortable">
|
||||||
|
<input id="sportspress_player_list_sortable_default" name="sportspress[player_list_sortable]" type="hidden" value="0">
|
||||||
|
<input id="sportspress_player_list_sortable" name="sportspress[player_list_sortable]" type="checkbox" value="1" <?php checked( $sortable ); ?>>
|
||||||
|
<?php _e( 'Sortable', 'sportspress' ); ?>
|
||||||
</label>
|
</label>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<?php
|
<?php
|
||||||
@@ -107,6 +123,19 @@ class SportsPressPlayerSettingsPage {
|
|||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function players_callback() {
|
||||||
|
$link_posts = sportspress_array_value( $this->options, 'player_list_link_posts', true );
|
||||||
|
?>
|
||||||
|
<fieldset>
|
||||||
|
<label for="sportspress_player_list_link_posts">
|
||||||
|
<input id="sportspress_player_list_link_posts_default" name="sportspress[player_list_link_posts]" type="hidden" value="0">
|
||||||
|
<input id="sportspress_player_list_link_posts" name="sportspress[player_list_link_posts]" type="checkbox" value="1" <?php checked( $link_posts ); ?>>
|
||||||
|
<?php _e( 'Display players as links', 'sportspress' ); ?>
|
||||||
|
</label>
|
||||||
|
</fieldset>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
|
||||||
function metrics_callback() {
|
function metrics_callback() {
|
||||||
$args = array(
|
$args = array(
|
||||||
'post_type' => 'sp_metric',
|
'post_type' => 'sp_metric',
|
||||||
|
|||||||
@@ -20,10 +20,18 @@ class SportsPressTeamSettingsPage {
|
|||||||
'sportspress_teams'
|
'sportspress_teams'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
add_settings_field(
|
||||||
|
'table',
|
||||||
|
__( 'Table', 'sportspress' ),
|
||||||
|
array( $this, 'table_callback' ),
|
||||||
|
'sportspress_teams',
|
||||||
|
'table'
|
||||||
|
);
|
||||||
|
|
||||||
add_settings_field(
|
add_settings_field(
|
||||||
'teams',
|
'teams',
|
||||||
__( 'Teams', 'sportspress' ),
|
__( 'Teams', 'sportspress' ),
|
||||||
array( $this, 'tables_callback' ),
|
array( $this, 'teams_callback' ),
|
||||||
'sportspress_teams',
|
'sportspress_teams',
|
||||||
'table'
|
'table'
|
||||||
);
|
);
|
||||||
@@ -37,7 +45,28 @@ class SportsPressTeamSettingsPage {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function tables_callback() {
|
function table_callback() {
|
||||||
|
$responsive = sportspress_array_value( $this->options, 'league_table_responsive', true );
|
||||||
|
$sortable = sportspress_array_value( $this->options, 'league_table_sortable', true );
|
||||||
|
?>
|
||||||
|
<fieldset>
|
||||||
|
<label for="sportspress_league_table_responsive">
|
||||||
|
<input id="sportspress_league_table_responsive_default" name="sportspress[league_table_responsive]" type="hidden" value="0">
|
||||||
|
<input id="sportspress_league_table_responsive" name="sportspress[league_table_responsive]" type="checkbox" value="1" <?php checked( $responsive ); ?>>
|
||||||
|
<?php _e( 'Responsive', 'sportspress' ); ?>
|
||||||
|
</label>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<label for="sportspress_league_table_sortable">
|
||||||
|
<input id="sportspress_league_table_sortable_default" name="sportspress[league_table_sortable]" type="hidden" value="0">
|
||||||
|
<input id="sportspress_league_table_sortable" name="sportspress[league_table_sortable]" type="checkbox" value="1" <?php checked( $sortable ); ?>>
|
||||||
|
<?php _e( 'Sortable', 'sportspress' ); ?>
|
||||||
|
</label>
|
||||||
|
</fieldset>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
|
||||||
|
function teams_callback() {
|
||||||
$show_team_logo = sportspress_array_value( $this->options, 'league_table_show_team_logo', false );
|
$show_team_logo = sportspress_array_value( $this->options, 'league_table_show_team_logo', false );
|
||||||
$link_posts = sportspress_array_value( $this->options, 'league_table_link_posts', false );
|
$link_posts = sportspress_array_value( $this->options, 'league_table_link_posts', false );
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -13,12 +13,14 @@ if ( !function_exists( 'sportspress_league_table' ) ) {
|
|||||||
'show_full_table_link' => false,
|
'show_full_table_link' => false,
|
||||||
'show_team_logo' => sportspress_array_value( $sportspress_options, 'league_table_show_team_logo', false ),
|
'show_team_logo' => sportspress_array_value( $sportspress_options, 'league_table_show_team_logo', false ),
|
||||||
'link_posts' => sportspress_array_value( $sportspress_options, 'league_table_link_posts', false ),
|
'link_posts' => sportspress_array_value( $sportspress_options, 'league_table_link_posts', false ),
|
||||||
|
'sortable' => sportspress_array_value( $sportspress_options, 'league_table_sortable', true ),
|
||||||
|
'responsive' => sportspress_array_value( $sportspress_options, 'league_table_responsive', true ),
|
||||||
);
|
);
|
||||||
|
|
||||||
$r = wp_parse_args( $args, $defaults );
|
$r = wp_parse_args( $args, $defaults );
|
||||||
|
|
||||||
$output = '<div class="sp-table-wrapper">' .
|
$output = '<div class="sp-table-wrapper">' .
|
||||||
'<table class="sp-league-table sp-data-table sp-responsive-table">' . '<thead>' . '<tr>';
|
'<table class="sp-league-table sp-data-table' . ( $r['responsive'] ? ' sp-responsive-table' : '' ) . ( $r['sortable'] ? ' sp-sortable-table' : '' ) . '">' . '<thead>' . '<tr>';
|
||||||
|
|
||||||
$data = sportspress_get_league_table_data( $id );
|
$data = sportspress_get_league_table_data( $id );
|
||||||
|
|
||||||
|
|||||||
@@ -14,12 +14,14 @@ if ( !function_exists( 'sportspress_player_list' ) ) {
|
|||||||
'order' => 'ASC',
|
'order' => 'ASC',
|
||||||
'show_all_players_link' => false,
|
'show_all_players_link' => false,
|
||||||
'link_posts' => sportspress_array_value( $sportspress_options, 'player_list_link_posts', true ),
|
'link_posts' => sportspress_array_value( $sportspress_options, 'player_list_link_posts', true ),
|
||||||
|
'sortable' => sportspress_array_value( $sportspress_options, 'player_list_sortable', true ),
|
||||||
|
'responsive' => sportspress_array_value( $sportspress_options, 'player_list_responsive', true ),
|
||||||
);
|
);
|
||||||
|
|
||||||
$r = wp_parse_args( $args, $defaults );
|
$r = wp_parse_args( $args, $defaults );
|
||||||
|
|
||||||
$output = '<div class="sp-table-wrapper">' .
|
$output = '<div class="sp-table-wrapper">' .
|
||||||
'<table class="sp-player-list sp-data-table sp-responsive-table">' . '<thead>' . '<tr>';
|
'<table class="sp-player-list sp-data-table' . ( $r['responsive'] ? ' sp-responsive-table' : '' ) . ( $r['sortable'] ? ' sp-sortable-table' : '' ) . '">' . '<thead>' . '<tr>';
|
||||||
|
|
||||||
$data = sportspress_get_player_list_data( $id );
|
$data = sportspress_get_player_list_data( $id );
|
||||||
|
|
||||||
|
|||||||
@@ -24,22 +24,25 @@ function viewport() {
|
|||||||
/* Data Tables */
|
/* Data Tables */
|
||||||
|
|
||||||
if (viewport().width > 640) {
|
if (viewport().width > 640) {
|
||||||
$(".sp-league-table, .sp-event-statistics, .sp-player-list").dataTable({
|
$(".sp-league-table, .sp-event-statistics, .sp-player-list").each(function() {
|
||||||
"aaSorting": [],
|
sort = $(this).hasClass("sp-sortable-table");
|
||||||
"bAutoWidth": false,
|
$(this).dataTable({
|
||||||
"bFilter": false,
|
"aaSorting": [],
|
||||||
"bInfo": false,
|
"bAutoWidth": false,
|
||||||
"bPaginate": false,
|
"bFilter": false,
|
||||||
"bSort": true,
|
"bInfo": false,
|
||||||
"oLanguage": {
|
"bPaginate": false,
|
||||||
"oAria": {
|
"bSort": sort,
|
||||||
"sSortAscending": "",
|
"oLanguage": {
|
||||||
"sSortDescending": ""
|
"oAria": {
|
||||||
}
|
"sSortAscending": "",
|
||||||
},
|
"sSortDescending": ""
|
||||||
"aoColumnDefs": [
|
}
|
||||||
{ "sType": "numeric", "aTargets": [ 0 ] },
|
},
|
||||||
]
|
"aoColumnDefs": [
|
||||||
|
{ "sType": "numeric", "aTargets": [ 0 ] },
|
||||||
|
]
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -158,6 +158,7 @@ SportsPress is currently in beta and is undergoing testing. We are still activel
|
|||||||
* Feature - Display full event results on hover over main team result in admin.
|
* Feature - Display full event results on hover over main team result in admin.
|
||||||
* Feature - Add option to choose delimiter to use between team names in event titles.
|
* Feature - Add option to choose delimiter to use between team names in event titles.
|
||||||
* Tweak - Adjust text options to modify front-end only.
|
* Tweak - Adjust text options to modify front-end only.
|
||||||
|
* Fix - Responsive league table output and styling.
|
||||||
|
|
||||||
= 0.6 =
|
= 0.6 =
|
||||||
* Feature - New events shortcodes: countdown, events-calendar, and events-list.
|
* Feature - New events shortcodes: countdown, events-calendar, and events-list.
|
||||||
|
|||||||
Reference in New Issue
Block a user