Add responsiveness to tables
For league tables, event lists, player lists, and box score (player performance).
This commit is contained in:
@@ -507,3 +507,94 @@ function sportspress_output_br_tag() {
|
|||||||
<br>
|
<br>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
if ( ! function_exists( 'responsive_tables_css' ) ) {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Output the inlince css code for responsive tables.
|
||||||
|
*
|
||||||
|
* @access public
|
||||||
|
* @subpackage Responsive
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function responsive_tables_css($vars) {
|
||||||
|
$custom_css = '/*
|
||||||
|
Max width before this PARTICULAR table gets nasty
|
||||||
|
This query will take effect for any screen smaller than 760px
|
||||||
|
and also iPads specifically.
|
||||||
|
*/
|
||||||
|
@media
|
||||||
|
only screen and (max-width: 760px),
|
||||||
|
(min-device-width: 768px) and (max-device-width: 1024px) {
|
||||||
|
|
||||||
|
/* Force table to not be like tables anymore */
|
||||||
|
table, thead, tbody, th, td, tr {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hide table headers (but not display: none;, for accessibility) */
|
||||||
|
thead tr {
|
||||||
|
position: absolute;
|
||||||
|
top: -9999px;
|
||||||
|
left: -9999px;
|
||||||
|
}
|
||||||
|
.sp-data-table .data-number, .sp-data-table .data-rank {
|
||||||
|
width: auto !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sp-data-table .data-name {
|
||||||
|
text-align: center !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr { border: 1px solid #ccc; }
|
||||||
|
|
||||||
|
td {
|
||||||
|
/* Behave like a "row" */
|
||||||
|
border: none;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
position: relative;
|
||||||
|
padding-left: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
td:before {
|
||||||
|
/* Now like a table header */
|
||||||
|
position: absolute;
|
||||||
|
/* Top/left values mimic padding */
|
||||||
|
top: 6px;
|
||||||
|
left: 6px;
|
||||||
|
width: 45%;
|
||||||
|
padding-right: 10px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Label the data
|
||||||
|
*/';
|
||||||
|
$k=1;
|
||||||
|
foreach ($vars as $label) {
|
||||||
|
$custom_css .= 'td:nth-of-type('.$k.'):before { content: "'.$label.'"; }';
|
||||||
|
$k++;
|
||||||
|
}
|
||||||
|
|
||||||
|
$custom_css .= '
|
||||||
|
}
|
||||||
|
/* Smartphones (portrait and landscape) ----------- */
|
||||||
|
@media only screen
|
||||||
|
and (min-device-width : 320px)
|
||||||
|
and (max-device-width : 480px) {
|
||||||
|
body {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
width: 320px; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* iPads (portrait and landscape) ----------- */
|
||||||
|
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
|
||||||
|
body {
|
||||||
|
width: 495px;
|
||||||
|
}
|
||||||
|
}';
|
||||||
|
wp_register_style( 'sportspress-style-inline', false );
|
||||||
|
wp_enqueue_style( 'sportspress-style-inline' );
|
||||||
|
wp_add_inline_style( 'sportspress-style-inline', $custom_css );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -31,6 +31,7 @@ $defaults = array(
|
|||||||
'link_teams' => get_option( 'sportspress_link_teams', 'no' ) == 'yes' ? true : false,
|
'link_teams' => get_option( 'sportspress_link_teams', 'no' ) == 'yes' ? true : false,
|
||||||
'link_venues' => get_option( 'sportspress_link_venues', 'yes' ) == 'yes' ? true : false,
|
'link_venues' => get_option( 'sportspress_link_venues', 'yes' ) == 'yes' ? true : false,
|
||||||
'abbreviate_teams' => get_option( 'sportspress_abbreviate_teams', 'yes' ) === 'yes' ? true : false,
|
'abbreviate_teams' => get_option( 'sportspress_abbreviate_teams', 'yes' ) === 'yes' ? true : false,
|
||||||
|
'responsive' => get_option( 'sportspress_enable_responsive_tables', 'yes' ) == 'yes' ? true : false,
|
||||||
'sortable' => get_option( 'sportspress_enable_sortable_tables', 'yes' ) == 'yes' ? true : false,
|
'sortable' => get_option( 'sportspress_enable_sortable_tables', 'yes' ) == 'yes' ? true : false,
|
||||||
'scrollable' => get_option( 'sportspress_enable_scrollable_tables', 'yes' ) == 'yes' ? true : false,
|
'scrollable' => get_option( 'sportspress_enable_scrollable_tables', 'yes' ) == 'yes' ? true : false,
|
||||||
'paginated' => get_option( 'sportspress_event_list_paginated', 'yes' ) == 'yes' ? true : false,
|
'paginated' => get_option( 'sportspress_event_list_paginated', 'yes' ) == 'yes' ? true : false,
|
||||||
@@ -91,6 +92,7 @@ if ( $show_title && false === $title && $id ):
|
|||||||
else
|
else
|
||||||
$title = get_the_title( $id );
|
$title = get_the_title( $id );
|
||||||
endif;
|
endif;
|
||||||
|
$labels = array();
|
||||||
?>
|
?>
|
||||||
<div class="sp-template sp-template-event-list">
|
<div class="sp-template sp-template-event-list">
|
||||||
<?php if ( $title ) { ?>
|
<?php if ( $title ) { ?>
|
||||||
@@ -102,70 +104,88 @@ endif;
|
|||||||
<tr>
|
<tr>
|
||||||
<?php
|
<?php
|
||||||
echo '<th class="data-date">' . __( 'Date', 'sportspress' ) . '</th>';
|
echo '<th class="data-date">' . __( 'Date', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'Date', 'sportspress' );
|
||||||
|
|
||||||
switch ( $title_format ) {
|
switch ( $title_format ) {
|
||||||
case 'homeaway':
|
case 'homeaway':
|
||||||
if ( sp_column_active( $usecolumns, 'event' ) ) {
|
if ( sp_column_active( $usecolumns, 'event' ) ) {
|
||||||
echo '<th class="data-home">' . __( 'Home', 'sportspress' ) . '</th>';
|
echo '<th class="data-home">' . __( 'Home', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'Home', 'sportspress' );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( 'combined' == $time_format && sp_column_active( $usecolumns, 'time' ) ) {
|
if ( 'combined' == $time_format && sp_column_active( $usecolumns, 'time' ) ) {
|
||||||
echo '<th class="data-time">' . __( 'Time/Results', 'sportspress' ) . '</th>';
|
echo '<th class="data-time">' . __( 'Time/Results', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'Time/Results', 'sportspress' );
|
||||||
} elseif ( in_array( $time_format, array( 'separate', 'results' ) ) && sp_column_active( $usecolumns, 'results' ) ) {
|
} elseif ( in_array( $time_format, array( 'separate', 'results' ) ) && sp_column_active( $usecolumns, 'results' ) ) {
|
||||||
echo '<th class="data-results">' . __( 'Results', 'sportspress' ) . '</th>';
|
echo '<th class="data-results">' . __( 'Results', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'Results', 'sportspress' );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( sp_column_active( $usecolumns, 'event' ) ) {
|
if ( sp_column_active( $usecolumns, 'event' ) ) {
|
||||||
echo '<th class="data-away">' . __( 'Away', 'sportspress' ) . '</th>';
|
echo '<th class="data-away">' . __( 'Away', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'Away', 'sportspress' );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( in_array( $time_format, array( 'separate', 'time' ) ) && sp_column_active( $usecolumns, 'time' ) ) {
|
if ( in_array( $time_format, array( 'separate', 'time' ) ) && sp_column_active( $usecolumns, 'time' ) ) {
|
||||||
echo '<th class="data-time">' . __( 'Time', 'sportspress' ) . '</th>';
|
echo '<th class="data-time">' . __( 'Time', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'Time', 'sportspress' );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if ( sp_column_active( $usecolumns, 'event' ) ) {
|
if ( sp_column_active( $usecolumns, 'event' ) ) {
|
||||||
if ( $title_format == 'teams' )
|
if ( $title_format == 'teams' ){
|
||||||
echo '<th class="data-teams">' . __( 'Teams', 'sportspress' ) . '</th>';
|
echo '<th class="data-teams">' . __( 'Teams', 'sportspress' ) . '</th>';
|
||||||
else
|
$labels[] = __( 'Teams', 'sportspress' );
|
||||||
|
}else{
|
||||||
echo '<th class="data-event">' . __( 'Event', 'sportspress' ) . '</th>';
|
echo '<th class="data-event">' . __( 'Event', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'Event', 'sportspress' );}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ( $time_format ) {
|
switch ( $time_format ) {
|
||||||
case 'separate':
|
case 'separate':
|
||||||
if ( sp_column_active( $usecolumns, 'time' ) )
|
if ( sp_column_active( $usecolumns, 'time' ) )
|
||||||
echo '<th class="data-time">' . __( 'Time', 'sportspress' ) . '</th>';
|
echo '<th class="data-time">' . __( 'Time', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'Time', 'sportspress' );
|
||||||
if ( sp_column_active( $usecolumns, 'results' ) )
|
if ( sp_column_active( $usecolumns, 'results' ) )
|
||||||
echo '<th class="data-results">' . __( 'Results', 'sportspress' ) . '</th>';
|
echo '<th class="data-results">' . __( 'Results', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'Results', 'sportspress' );
|
||||||
break;
|
break;
|
||||||
case 'time':
|
case 'time':
|
||||||
if ( sp_column_active( $usecolumns, 'time' ) )
|
if ( sp_column_active( $usecolumns, 'time' ) )
|
||||||
echo '<th class="data-time">' . __( 'Time', 'sportspress' ) . '</th>';
|
echo '<th class="data-time">' . __( 'Time', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'Time', 'sportspress' );
|
||||||
break;
|
break;
|
||||||
case 'results':
|
case 'results':
|
||||||
if ( sp_column_active( $usecolumns, 'results' ) )
|
if ( sp_column_active( $usecolumns, 'results' ) )
|
||||||
echo '<th class="data-results">' . __( 'Results', 'sportspress' ) . '</th>';
|
echo '<th class="data-results">' . __( 'Results', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'Results', 'sportspress' );
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if ( sp_column_active( $usecolumns, 'time' ) )
|
if ( sp_column_active( $usecolumns, 'time' ) )
|
||||||
echo '<th class="data-time">' . __( 'Time/Results', 'sportspress' ) . '</th>';
|
echo '<th class="data-time">' . __( 'Time/Results', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'Time/Results', 'sportspress' );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( sp_column_active( $usecolumns, 'league' ) )
|
if ( sp_column_active( $usecolumns, 'league' ) )
|
||||||
echo '<th class="data-league">' . __( 'League', 'sportspress' ) . '</th>';
|
echo '<th class="data-league">' . __( 'League', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'League', 'sportspress' );
|
||||||
|
|
||||||
if ( sp_column_active( $usecolumns, 'season' ) )
|
if ( sp_column_active( $usecolumns, 'season' ) )
|
||||||
echo '<th class="data-season">' . __( 'Season', 'sportspress' ) . '</th>';
|
echo '<th class="data-season">' . __( 'Season', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'Season', 'sportspress' );
|
||||||
|
|
||||||
if ( sp_column_active( $usecolumns, 'venue' ) )
|
if ( sp_column_active( $usecolumns, 'venue' ) )
|
||||||
echo '<th class="data-venue">' . __( 'Venue', 'sportspress' ) . '</th>';
|
echo '<th class="data-venue">' . __( 'Venue', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'Venue', 'sportspress' );
|
||||||
|
|
||||||
if ( sp_column_active( $usecolumns, 'article' ) )
|
if ( sp_column_active( $usecolumns, 'article' ) )
|
||||||
echo '<th class="data-article">' . __( 'Article', 'sportspress' ) . '</th>';
|
echo '<th class="data-article">' . __( 'Article', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'Article', 'sportspress' );
|
||||||
|
|
||||||
if ( sp_column_active( $usecolumns, 'day' ) )
|
if ( sp_column_active( $usecolumns, 'day' ) )
|
||||||
echo '<th class="data-day">' . __( 'Match Day', 'sportspress' ) . '</th>';
|
echo '<th class="data-day">' . __( 'Match Day', 'sportspress' ) . '</th>';
|
||||||
|
$labels[] = __( 'Match Day', 'sportspress' );
|
||||||
|
|
||||||
do_action( 'sportspress_event_list_head_row', $usecolumns );
|
do_action( 'sportspress_event_list_head_row', $usecolumns );
|
||||||
?>
|
?>
|
||||||
@@ -428,6 +448,11 @@ endif;
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
|
//var_dump($labels);
|
||||||
|
// If responsive tables are enabled then load the inline css code
|
||||||
|
if ($responsive == true){
|
||||||
|
responsive_tables_css($labels);
|
||||||
|
}
|
||||||
if ( $id && $show_all_events_link )
|
if ( $id && $show_all_events_link )
|
||||||
echo '<div class="sp-calendar-link sp-view-all-link"><a href="' . get_permalink( $id ) . '">' . __( 'View all events', 'sportspress' ) . '</a></div>';
|
echo '<div class="sp-calendar-link sp-view-all-link"><a href="' . get_permalink( $id ) . '">' . __( 'View all events', 'sportspress' ) . '</a></div>';
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ if ( ! isset( $class ) ) $class = null;
|
|||||||
// Initialize arrays
|
// Initialize arrays
|
||||||
if ( ! isset( $lineups ) ) $lineups = array();
|
if ( ! isset( $lineups ) ) $lineups = array();
|
||||||
if ( ! isset( $subs ) ) $subs = array();
|
if ( ! isset( $subs ) ) $subs = array();
|
||||||
|
$responsive = get_option( 'sportspress_enable_responsive_tables', 'yes' ) == 'yes' ? true : false;
|
||||||
|
$rlabels = array();
|
||||||
?>
|
?>
|
||||||
<div class="sp-template sp-template-event-performance sp-template-event-performance-<?php echo $mode; ?><?php if ( isset( $class ) ) { echo ' ' . $class; } ?>">
|
<div class="sp-template sp-template-event-performance sp-template-event-performance-<?php echo $mode; ?><?php if ( isset( $class ) ) { echo ' ' . $class; } ?>">
|
||||||
<?php if ( $caption ): ?>
|
<?php if ( $caption ): ?>
|
||||||
@@ -33,17 +35,21 @@ if ( ! isset( $subs ) ) $subs = array();
|
|||||||
<?php if ( $show_players ): ?>
|
<?php if ( $show_players ): ?>
|
||||||
<?php if ( apply_filters( 'sportspress_event_performance_show_numbers', $show_numbers, $section ) ) { ?>
|
<?php if ( apply_filters( 'sportspress_event_performance_show_numbers', $show_numbers, $section ) ) { ?>
|
||||||
<th class="data-number">#</th>
|
<th class="data-number">#</th>
|
||||||
|
<?php $rlabels[] = '#'; ?>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<th class="data-name">
|
<th class="data-name">
|
||||||
<?php if ( isset( $section_label ) ) { ?>
|
<?php if ( isset( $section_label ) ) { ?>
|
||||||
<?php echo $section_label; ?>
|
<?php echo $section_label; ?>
|
||||||
|
<?php $rlabels[] = $section_label; ?>
|
||||||
<?php } else { ?>
|
<?php } else { ?>
|
||||||
<?php _e( 'Player', 'sportspress' ); ?>
|
<?php _e( 'Player', 'sportspress' ); ?>
|
||||||
|
<?php $rlabels[] = __( 'Player', 'sportspress' ); ?>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</th>
|
</th>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<?php foreach ( $labels as $key => $label ): ?>
|
<?php foreach ( $labels as $key => $label ): ?>
|
||||||
<th class="data-<?php echo $key; ?>"><?php echo $label; ?></th>
|
<th class="data-<?php echo $key; ?>"><?php echo $label; ?></th>
|
||||||
|
<?php $rlabels[] = $label; ?>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -257,3 +263,8 @@ if ( ! isset( $subs ) ) $subs = array();
|
|||||||
|
|
||||||
<?php do_action( 'sportspress_after_event_performance_table', $data, $lineups, $subs, $class ); ?>
|
<?php do_action( 'sportspress_after_event_performance_table', $data, $lineups, $subs, $class ); ?>
|
||||||
</div>
|
</div>
|
||||||
|
<?php
|
||||||
|
// If responsive tables are enabled then load the inline css code
|
||||||
|
if ($responsive == true && $mode == 'values'){
|
||||||
|
responsive_tables_css($rlabels);
|
||||||
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ $defaults = array(
|
|||||||
'show_title' => get_option( 'sportspress_table_show_title', 'yes' ) == 'yes' ? true : false,
|
'show_title' => get_option( 'sportspress_table_show_title', 'yes' ) == 'yes' ? true : false,
|
||||||
'show_team_logo' => get_option( 'sportspress_table_show_logos', 'yes' ) == 'yes' ? true : false,
|
'show_team_logo' => get_option( 'sportspress_table_show_logos', 'yes' ) == 'yes' ? true : false,
|
||||||
'link_posts' => null,
|
'link_posts' => null,
|
||||||
|
'responsive' => get_option( 'sportspress_enable_responsive_tables', 'yes' ) == 'yes' ? true : false,
|
||||||
'sortable' => get_option( 'sportspress_enable_sortable_tables', 'yes' ) == 'yes' ? true : false,
|
'sortable' => get_option( 'sportspress_enable_sortable_tables', 'yes' ) == 'yes' ? true : false,
|
||||||
'scrollable' => get_option( 'sportspress_enable_scrollable_tables', 'yes' ) == 'yes' ? true : false,
|
'scrollable' => get_option( 'sportspress_enable_scrollable_tables', 'yes' ) == 'yes' ? true : false,
|
||||||
'paginated' => get_option( 'sportspress_table_paginated', 'yes' ) == 'yes' ? true : false,
|
'paginated' => get_option( 'sportspress_table_paginated', 'yes' ) == 'yes' ? true : false,
|
||||||
@@ -60,7 +61,10 @@ $data = $table->data();
|
|||||||
|
|
||||||
// The first row should be column labels
|
// The first row should be column labels
|
||||||
$labels = $data[0];
|
$labels = $data[0];
|
||||||
|
// If responsive tables are enabled then load the inline css code
|
||||||
|
if ($responsive == true){
|
||||||
|
responsive_tables_css($labels);
|
||||||
|
}
|
||||||
// Remove the first row to leave us with the actual data
|
// Remove the first row to leave us with the actual data
|
||||||
unset( $data[0] );
|
unset( $data[0] );
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ $defaults = array(
|
|||||||
'link_posts' => get_option( 'sportspress_link_players', 'yes' ) == 'yes' ? true : false,
|
'link_posts' => get_option( 'sportspress_link_players', 'yes' ) == 'yes' ? true : false,
|
||||||
'link_teams' => get_option( 'sportspress_link_teams', 'no' ) == 'yes' ? true : false,
|
'link_teams' => get_option( 'sportspress_link_teams', 'no' ) == 'yes' ? true : false,
|
||||||
'abbreviate_teams' => get_option( 'sportspress_abbreviate_teams', 'yes' ) === 'yes' ? true : false,
|
'abbreviate_teams' => get_option( 'sportspress_abbreviate_teams', 'yes' ) === 'yes' ? true : false,
|
||||||
|
'responsive' => get_option( 'sportspress_enable_responsive_tables', 'yes' ) == 'yes' ? true : false,
|
||||||
'sortable' => get_option( 'sportspress_enable_sortable_tables', 'yes' ) == 'yes' ? true : false,
|
'sortable' => get_option( 'sportspress_enable_sortable_tables', 'yes' ) == 'yes' ? true : false,
|
||||||
'scrollable' => get_option( 'sportspress_enable_scrollable_tables', 'yes' ) == 'yes' ? true : false,
|
'scrollable' => get_option( 'sportspress_enable_scrollable_tables', 'yes' ) == 'yes' ? true : false,
|
||||||
'paginated' => get_option( 'sportspress_list_paginated', 'yes' ) == 'yes' ? true : false,
|
'paginated' => get_option( 'sportspress_list_paginated', 'yes' ) == 'yes' ? true : false,
|
||||||
@@ -55,7 +56,10 @@ $data = $list->data();
|
|||||||
|
|
||||||
// The first row should be column labels
|
// The first row should be column labels
|
||||||
$labels = $data[0];
|
$labels = $data[0];
|
||||||
|
// If responsive tables are enabled then load the inline css code
|
||||||
|
if ($responsive == true){
|
||||||
|
responsive_tables_css($labels);
|
||||||
|
}
|
||||||
// Remove the first row to leave us with the actual data
|
// Remove the first row to leave us with the actual data
|
||||||
unset( $data[0] );
|
unset( $data[0] );
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user