Merge pull request #290 from ThemeBoy/feature-statistics-icons

Feature statistics icons
This commit is contained in:
Brian Miyaji
2018-08-28 23:35:23 +10:00
committed by GitHub
10 changed files with 159 additions and 28 deletions

View File

@@ -109,3 +109,22 @@
.sp-icon-card:before { .sp-icon-card:before {
content: "\e801"; content: "\e801";
} }
.sp-icon-league:before {
content: "\f332";
}
.sp-icon-shield:before {
content: "\f334";
}
.sp-icon-tshirt:before,
.sp-icon-sp_player:before {
content: "\f307";
}
.sp-icon-whistle:before {
content: "\f227";
}
.sp-icon-time:before {
content: "\f469";
}
.sp-icon-friendly:before {
content: "\f328";
}

View File

@@ -40,6 +40,7 @@ class SP_Admin_CPT_Statistic extends SP_Admin_CPT {
public function edit_columns( $existing_columns ) { public function edit_columns( $existing_columns ) {
$columns = array( $columns = array(
'cb' => '<input type="checkbox" />', 'cb' => '<input type="checkbox" />',
'sp_icon' => __( 'Icon', 'sportspress' ),
'title' => __( 'Label', 'sportspress' ), 'title' => __( 'Label', 'sportspress' ),
'sp_key' => __( 'Key', 'sportspress' ), 'sp_key' => __( 'Key', 'sportspress' ),
'sp_equation' => __( 'Equation', 'sportspress' ), 'sp_equation' => __( 'Equation', 'sportspress' ),
@@ -55,6 +56,9 @@ class SP_Admin_CPT_Statistic extends SP_Admin_CPT {
*/ */
public function custom_columns( $column, $post_id ) { public function custom_columns( $column, $post_id ) {
switch ( $column ): switch ( $column ):
case 'sp_icon':
echo has_post_thumbnail( $post_id ) ? edit_post_link( get_the_post_thumbnail( $post_id, 'sportspress-fit-mini' ), '', '', $post_id ) : '';
break;
case 'sp_key': case 'sp_key':
global $post; global $post;
echo $post->post_name; echo $post->post_name;

View File

@@ -303,6 +303,9 @@ class SP_Admin_Meta_Boxes {
remove_meta_box( 'postimagediv', 'sp_performance', 'side' ); remove_meta_box( 'postimagediv', 'sp_performance', 'side' );
add_meta_box( 'postimagediv', __( 'Icon', 'sportspress' ), 'post_thumbnail_meta_box', 'sp_performance', 'side', 'low' ); add_meta_box( 'postimagediv', __( 'Icon', 'sportspress' ), 'post_thumbnail_meta_box', 'sp_performance', 'side', 'low' );
remove_meta_box( 'postimagediv', 'sp_statistic', 'side' );
add_meta_box( 'postimagediv', __( 'Icon', 'sportspress' ), 'post_thumbnail_meta_box', 'sp_statistic', 'side', 'low' );
} }
/** /**

View File

@@ -148,6 +148,17 @@ class SP_Settings_Players extends SP_Settings_Page {
'manual' => __( 'Manual', 'sportspress' ), 'manual' => __( 'Manual', 'sportspress' ),
), ),
), ),
array(
'title' => __( 'Mode', 'sportspress' ),
'id' => 'sportspress_player_statistics_mode',
'default' => 'values',
'type' => 'radio',
'options' => array(
'values' => __( 'Values', 'sportspress' ),
'icons' => __( 'Icons', 'sportspress' ),
),
),
array( array(
'title' => __( 'Categories', 'sportspress' ), 'title' => __( 'Categories', 'sportspress' ),

View File

@@ -371,6 +371,7 @@ $columns = get_option( 'sportspress_player_columns', 'auto' );
<thead> <thead>
<tr> <tr>
<th scope="col"><?php _e( 'Label', 'sportspress' ); ?></th> <th scope="col"><?php _e( 'Label', 'sportspress' ); ?></th>
<th class="icon" scope="col"><?php _e( 'Icon', 'sportspress' ); ?></th>
<th scope="col"><?php _e( 'Equation', 'sportspress' ); ?></th> <th scope="col"><?php _e( 'Equation', 'sportspress' ); ?></th>
<th scope="col"><?php _e( 'Decimal Places', 'sportspress' ); ?></th> <th scope="col"><?php _e( 'Decimal Places', 'sportspress' ); ?></th>
<th scope="col"><?php _e( 'Category', 'sportspress' ); ?></th> <th scope="col"><?php _e( 'Category', 'sportspress' ); ?></th>
@@ -391,6 +392,16 @@ $columns = get_option( 'sportspress_player_columns', 'auto' );
?> ?>
<tr<?php if ( $i % 2 == 0 ) echo ' class="alternate"'; ?>> <tr<?php if ( $i % 2 == 0 ) echo ' class="alternate"'; ?>>
<td class="row-title"><?php echo $row->post_title; ?></td> <td class="row-title"><?php echo $row->post_title; ?></td>
<td class="icon">
<?php
if ( has_post_thumbnail( $row->ID ) )
$icon = get_the_post_thumbnail( $row->ID, 'sportspress-fit-mini' );
else
$icon = '&nbsp;';
echo apply_filters( 'sportspress_performance_icon', $icon, $row->ID );
?>
</td>
<td><?php echo sp_get_post_equation( $row->ID ); ?></td> <td><?php echo sp_get_post_equation( $row->ID ); ?></td>
<td><?php echo sp_get_post_precision( $row->ID ); ?></td> <td><?php echo sp_get_post_precision( $row->ID ); ?></td>
<td><?php echo sp_get_post_section( $row->ID ); ?></td> <td><?php echo sp_get_post_section( $row->ID ); ?></td>

View File

@@ -213,8 +213,17 @@ class SP_Player_List extends SP_Secondary_Post {
// Add precision to object // Add precision to object
$stat->precision = sp_array_value( sp_array_value( $meta, 'sp_precision', array() ), 0, 0 ) + 0; $stat->precision = sp_array_value( sp_array_value( $meta, 'sp_precision', array() ), 0, 0 ) + 0;
// Add column name to columns // Add column icons to columns were is available
$columns[ $stat->post_name ] = $stat->post_title; if ( get_option( 'sportspress_player_statistics_mode', 'values' ) == 'icons' && ( $stat->post_type == 'sp_performance' || $stat->post_type == 'sp_statistic' ) ) {
$icon = apply_filters( 'sportspress_event_performance_icons', '', $stat->ID, 1 );
if ( $icon != '' ) {
$columns[ $stat->post_name ] = apply_filters( 'sportspress_event_performance_icons', '', $stat->ID, 1 );
}else{
$columns[ $stat->post_name ] = $stat->post_title;
}
}else{
$columns[ $stat->post_name ] = $stat->post_title;
}
// Add format // Add format
$format = get_post_meta( $stat->ID, 'sp_format', true ); $format = get_post_meta( $stat->ID, 'sp_format', true );
@@ -716,8 +725,12 @@ class SP_Player_List extends SP_Secondary_Post {
$labels = array(); $labels = array();
if ( in_array( 'number', $this->columns ) ) $labels['number'] = '#'; if ( in_array( 'number', $this->columns ) ) $labels['number'] = '#';
$labels['name'] = __( 'Player', 'sportspress' ); $labels['name'] = __( 'Player', 'sportspress' );
if ( in_array( 'team', $this->columns ) ) $labels['team'] = __( 'Team', 'sportspress' ); if ( in_array( 'team', $this->columns ) ) {
if ( in_array( 'position', $this->columns ) ) $labels['position'] = __( 'Position', 'sportspress' ); $labels['team'] = __( 'Team', 'sportspress' );
}
if ( in_array( 'position', $this->columns ) ) {
$labels['position'] = __( 'Position', 'sportspress' );
}
$merged[0] = array_merge( $labels, $columns ); $merged[0] = array_merge( $labels, $columns );
return $merged; return $merged;

View File

@@ -172,8 +172,17 @@ class SP_Player extends SP_Custom_Post {
foreach ( $posts as $post ): foreach ( $posts as $post ):
if ( -1 === $section ) { if ( -1 === $section ) {
$performance_labels[ $post->post_name ] = $post->post_title; if ( get_option( 'sportspress_player_statistics_mode', 'values' ) == 'icons' ) {
} else { $icon = apply_filters( 'sportspress_event_performance_icons', '', $post->ID, 1 );
if ( $icon != '' ) {
$performance_labels[ $post->post_name ] = apply_filters( 'sportspress_event_performance_icons', '', $post->ID, 1 );
}else{
$performance_labels[ $post->post_name ] = $post->post_title;
}
}else{
$performance_labels[ $post->post_name ] = $post->post_title;
}
}else{
$post_section = get_post_meta( $post->ID, 'sp_section', true ); $post_section = get_post_meta( $post->ID, 'sp_section', true );
if ( '' === $post_section ) { if ( '' === $post_section ) {
@@ -181,7 +190,16 @@ class SP_Player extends SP_Custom_Post {
} }
if ( $section == $post_section || -1 == $post_section ) { if ( $section == $post_section || -1 == $post_section ) {
if ( get_option( 'sportspress_player_statistics_mode', 'values' ) == 'icons' ) {
$icon = apply_filters( 'sportspress_event_performance_icons', '', $post->ID, 1 );
if ( $icon != '' ) {
$performance_labels[ $post->post_name ] = apply_filters( 'sportspress_event_performance_icons', '', $post->ID, 1 );
}else{
$performance_labels[ $post->post_name ] = $post->post_title;
}
}else{
$performance_labels[ $post->post_name ] = $post->post_title; $performance_labels[ $post->post_name ] = $post->post_title;
}
} }
} }
@@ -554,7 +572,16 @@ class SP_Player extends SP_Custom_Post {
foreach ( $posts as $post ): foreach ( $posts as $post ):
if ( -1 === $section ) { if ( -1 === $section ) {
$stats[ $post->post_name ] = $post->post_title; if ( get_option( 'sportspress_player_statistics_mode', 'values' ) == 'icons' ) {
$icon = apply_filters( 'sportspress_event_performance_icons', '', $post->ID, 1 );
if ( $icon != '' ) {
$stats[ $post->post_name ] = apply_filters( 'sportspress_event_performance_icons', '', $post->ID, 1 );
}else{
$stats[ $post->post_name ] = $post->post_title;
}
}else{
$stats[ $post->post_name ] = $post->post_title;
}
} else { } else {
$post_section = get_post_meta( $post->ID, 'sp_section', true ); $post_section = get_post_meta( $post->ID, 'sp_section', true );
@@ -565,16 +592,43 @@ class SP_Player extends SP_Custom_Post {
if ( $admin ) { if ( $admin ) {
if ( 1 == $section ) { if ( 1 == $section ) {
if ( 1 == $post_section ) { if ( 1 == $post_section ) {
$stats[ $post->post_name ] = $post->post_title; if ( get_option( 'sportspress_player_statistics_mode', 'values' ) == 'icons' ) {
$icon = apply_filters( 'sportspress_event_performance_icons', '', $post->ID, 1 );
if ( $icon != '' ) {
$stats[ $post->post_name ] = apply_filters( 'sportspress_event_performance_icons', '', $post->ID, 1 );
} else {
$stats[ $post->post_name ] = $post->post_title;
}
} else {
$stats[ $post->post_name ] = $post->post_title;
}
} }
} else { } else {
if ( 1 != $post_section ) { if ( 1 != $post_section ) {
$stats[ $post->post_name ] = $post->post_title; if ( get_option( 'sportspress_player_statistics_mode', 'values' ) == 'icons' ) {
$icon = apply_filters( 'sportspress_event_performance_icons', '', $post->ID, 1 );
if ( $icon != '' ) {
$stats[ $post->post_name ] = apply_filters( 'sportspress_event_performance_icons', '', $post->ID, 1 );
} else {
$stats[ $post->post_name ] = $post->post_title;
}
} else {
$stats[ $post->post_name ] = $post->post_title;
}
} }
} }
} elseif ( $section == $post_section || -1 == $post_section ) { } elseif ( $section == $post_section || -1 == $post_section ) {
if ( get_option( 'sportspress_player_statistics_mode', 'values' ) == 'icons' ) {
$icon = apply_filters( 'sportspress_event_performance_icons', '', $post->ID, 1 );
if ( $icon != '' ) {
$stats[ $post->post_name ] = apply_filters( 'sportspress_event_performance_icons', '', $post->ID, 1 );
}else{
$stats[ $post->post_name ] = $post->post_title;
}
}else{
$stats[ $post->post_name ] = $post->post_title; $stats[ $post->post_name ] = $post->post_title;
} }
}
} }
endforeach; endforeach;

View File

@@ -392,6 +392,9 @@ class SP_Post_types {
'search_items' => __( 'Search', 'sportspress' ), 'search_items' => __( 'Search', 'sportspress' ),
'not_found' => __( 'No results found.', 'sportspress' ), 'not_found' => __( 'No results found.', 'sportspress' ),
'not_found_in_trash' => __( 'No results found.', 'sportspress' ), 'not_found_in_trash' => __( 'No results found.', 'sportspress' ),
'set_featured_image' => __( 'Select Icon', 'sportspress' ),
'remove_featured_image' => __( 'Remove icon', 'sportspress' ),
'use_featured_image' => __( 'Add icon', 'sportspress' ),
), ),
'public' => false, 'public' => false,
'show_ui' => true, 'show_ui' => true,

View File

@@ -41,6 +41,7 @@ class SportsPress_Icons {
add_filter( 'sportspress_event_performance_icons', array( $this, 'replace_icons' ), 10, 3 ); add_filter( 'sportspress_event_performance_icons', array( $this, 'replace_icons' ), 10, 3 );
add_filter( 'admin_post_thumbnail_html', array( $this, 'admin_post_thumbnail_html' ), 10, 2 ); add_filter( 'admin_post_thumbnail_html', array( $this, 'admin_post_thumbnail_html' ), 10, 2 );
add_action( 'sportspress_process_sp_performance_meta', array( $this, 'save' ), 10, 2 ); add_action( 'sportspress_process_sp_performance_meta', array( $this, 'save' ), 10, 2 );
add_action( 'sportspress_process_sp_statistic_meta', array( $this, 'save' ), 10, 2 );
} }
/** /**
@@ -91,6 +92,12 @@ class SportsPress_Icons {
'racing-flag', 'racing-flag',
'shoe', 'shoe',
'card', 'card',
'league',
'shield',
'tshirt',
'whistle',
'time',
'friendly',
'sub', 'sub',
'update', 'update',
'undo', 'undo',
@@ -143,7 +150,7 @@ class SportsPress_Icons {
// Bypass if not performance post type // Bypass if not performance post type
$post_type = get_post_type( $id ); $post_type = get_post_type( $id );
if ( 'sp_performance' !== $post_type ) return $content; if ( 'sp_performance' !== $post_type && 'sp_statistic' !== $post_type ) return $content;
// Detect if image uploaded // Detect if image uploaded
$is_uploaded = isset( $_POST['thumbnail_id'] ); $is_uploaded = isset( $_POST['thumbnail_id'] );

View File

@@ -53,7 +53,7 @@ if ( isset( $columns ) && null !== $columns ):
endif; endif;
$data = $list->data(); $data = $list->data();
// The first row should be column labels // The first row should be labels
$labels = $data[0]; $labels = $data[0];
//Create a unique identifier based on the current time in microseconds //Create a unique identifier based on the current time in microseconds
@@ -62,7 +62,7 @@ $identifier = uniqid( 'playerlist_' );
if ( true == $responsive ){ if ( true == $responsive ){
//sportspress_responsive_tables_css( $identifier ); //sportspress_responsive_tables_css( $identifier );
} }
// Remove the first row to leave us with the actual data // Remove the first row and 'head' row to leave us with the actual data
unset( $data[0] ); unset( $data[0] );
if ( $grouping === null || $grouping === 'default' ): if ( $grouping === null || $grouping === 'default' ):
@@ -122,6 +122,25 @@ foreach ( $groups as $group ):
if ( intval( $number ) > 0 ) if ( intval( $number ) > 0 )
$limit = $number; $limit = $number;
$thead = '<thead>' . '<tr>';
if ( ! is_array( $labels ) || array_key_exists( 'number', $labels ) ):
if ( in_array( $orderby, array( 'number', 'name' ) ) ):
$thead .= '<th class="data-number">#</th>';
else:
$thead .= '<th class="data-rank">' . __( 'Rank', 'sportspress' ) . '</th>';
endif;
endif;
foreach( $labels as $key => $label ):
if ( $key !== 'number' && ( ! is_array( $columns ) || $key == 'name' || in_array( $key, $columns ) ) )
$thead .= '<th class="data-' . $key . '">'. $label . '</th>';
if ( preg_match ( "/title=\"(.*?)\"/", $label, $new_label ) )
$labels[$key] = $label[1];
endforeach;
$thead .= '</tr>' . '</thead>';
$tbody = ''; $tbody = '';
foreach( $data as $player_id => $row ): if ( empty( $group->term_id ) || has_term( $group->term_id, 'sp_position', $player_id ) ): foreach( $data as $player_id => $row ): if ( empty( $group->term_id ) || has_term( $group->term_id, 'sp_position', $player_id ) ):
@@ -213,22 +232,9 @@ foreach ( $groups as $group ):
endif; endif;
$output .= '<div class="sp-table-wrapper">' . $output .= '<div class="sp-table-wrapper">' .
'<table class="sp-player-list sp-data-table' . ( $sortable ? ' sp-sortable-table' : '' ). ( $responsive ? ' sp-responsive-table '.$identifier : '' ) . ( $scrollable ? ' sp-scrollable-table' : '' ) . ( $paginated ? ' sp-paginated-table' : '' ) . '" data-sp-rows="' . $rows . '">' . '<thead>' . '<tr>'; '<table class="sp-player-list sp-data-table' . ( $sortable ? ' sp-sortable-table' : '' ). ( $responsive ? ' sp-responsive-table '.$identifier : '' ) . ( $scrollable ? ' sp-scrollable-table' : '' ) . ( $paginated ? ' sp-paginated-table' : '' ) . '" data-sp-rows="' . $rows . '">';
if ( ! is_array( $labels ) || array_key_exists( 'number', $labels ) ): $output .= $thead . '<tbody>';
if ( in_array( $orderby, array( 'number', 'name' ) ) ):
$output .= '<th class="data-number">#</th>';
else:
$output .= '<th class="data-rank">' . __( 'Rank', 'sportspress' ) . '</th>';
endif;
endif;
foreach( $labels as $key => $label ):
if ( $key !== 'number' && ( ! is_array( $columns ) || $key == 'name' || in_array( $key, $columns ) ) )
$output .= '<th class="data-' . $key . '">'. $label . '</th>';
endforeach;
$output .= '</tr>' . '</thead>' . '<tbody>';
$output .= $tbody; $output .= $tbody;