diff --git a/assets/css/icons.css b/assets/css/icons.css index af3696b4..3ed7a013 100644 --- a/assets/css/icons.css +++ b/assets/css/icons.css @@ -109,3 +109,22 @@ .sp-icon-card:before { 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"; +} diff --git a/includes/admin/post-types/class-sp-admin-cpt-statistic.php b/includes/admin/post-types/class-sp-admin-cpt-statistic.php index 1568ffa7..a94b0fac 100644 --- a/includes/admin/post-types/class-sp-admin-cpt-statistic.php +++ b/includes/admin/post-types/class-sp-admin-cpt-statistic.php @@ -40,6 +40,7 @@ class SP_Admin_CPT_Statistic extends SP_Admin_CPT { public function edit_columns( $existing_columns ) { $columns = array( 'cb' => '', + 'sp_icon' => __( 'Icon', 'sportspress' ), 'title' => __( 'Label', 'sportspress' ), 'sp_key' => __( 'Key', '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 ) { 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': global $post; echo $post->post_name; diff --git a/includes/admin/post-types/class-sp-admin-meta-boxes.php b/includes/admin/post-types/class-sp-admin-meta-boxes.php index 56bb893b..c4b69203 100644 --- a/includes/admin/post-types/class-sp-admin-meta-boxes.php +++ b/includes/admin/post-types/class-sp-admin-meta-boxes.php @@ -303,6 +303,9 @@ class SP_Admin_Meta_Boxes { remove_meta_box( 'postimagediv', 'sp_performance', 'side' ); 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' ); } /** diff --git a/includes/admin/settings/class-sp-settings-players.php b/includes/admin/settings/class-sp-settings-players.php index c7a918e0..478e394e 100644 --- a/includes/admin/settings/class-sp-settings-players.php +++ b/includes/admin/settings/class-sp-settings-players.php @@ -148,6 +148,17 @@ class SP_Settings_Players extends SP_Settings_Page { '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( 'title' => __( 'Categories', 'sportspress' ), diff --git a/includes/admin/views/html-admin-config.php b/includes/admin/views/html-admin-config.php index 8b90f05a..0f5fb3c8 100644 --- a/includes/admin/views/html-admin-config.php +++ b/includes/admin/views/html-admin-config.php @@ -371,6 +371,7 @@ $columns = get_option( 'sportspress_player_columns', 'auto' ); + @@ -391,6 +392,16 @@ $columns = get_option( 'sportspress_player_columns', 'auto' ); ?> > post_title; ?> + + ID ) ) + $icon = get_the_post_thumbnail( $row->ID, 'sportspress-fit-mini' ); + else + $icon = ' '; + + echo apply_filters( 'sportspress_performance_icon', $icon, $row->ID ); + ?> + ID ); ?> ID ); ?> ID ); ?> diff --git a/includes/class-sp-player-list.php b/includes/class-sp-player-list.php index 6b0e1fb2..95f31882 100644 --- a/includes/class-sp-player-list.php +++ b/includes/class-sp-player-list.php @@ -213,8 +213,17 @@ class SP_Player_List extends SP_Secondary_Post { // Add precision to object $stat->precision = sp_array_value( sp_array_value( $meta, 'sp_precision', array() ), 0, 0 ) + 0; - // Add column name to columns - $columns[ $stat->post_name ] = $stat->post_title; + // Add column icons to columns were is available + 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 $format = get_post_meta( $stat->ID, 'sp_format', true ); @@ -716,8 +725,12 @@ class SP_Player_List extends SP_Secondary_Post { $labels = array(); if ( in_array( 'number', $this->columns ) ) $labels['number'] = '#'; $labels['name'] = __( 'Player', 'sportspress' ); - if ( in_array( 'team', $this->columns ) ) $labels['team'] = __( 'Team', 'sportspress' ); - if ( in_array( 'position', $this->columns ) ) $labels['position'] = __( 'Position', 'sportspress' ); + if ( in_array( 'team', $this->columns ) ) { + $labels['team'] = __( 'Team', 'sportspress' ); + } + if ( in_array( 'position', $this->columns ) ) { + $labels['position'] = __( 'Position', 'sportspress' ); + } $merged[0] = array_merge( $labels, $columns ); return $merged; diff --git a/includes/class-sp-player.php b/includes/class-sp-player.php index 060bf42d..ccf7a432 100644 --- a/includes/class-sp-player.php +++ b/includes/class-sp-player.php @@ -172,8 +172,17 @@ class SP_Player extends SP_Custom_Post { foreach ( $posts as $post ): if ( -1 === $section ) { - $performance_labels[ $post->post_name ] = $post->post_title; - } else { + 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; + } + }else{ $post_section = get_post_meta( $post->ID, 'sp_section', true ); if ( '' === $post_section ) { @@ -181,7 +190,16 @@ class SP_Player extends SP_Custom_Post { } 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; + } } } @@ -554,7 +572,16 @@ class SP_Player extends SP_Custom_Post { foreach ( $posts as $post ): 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 { $post_section = get_post_meta( $post->ID, 'sp_section', true ); @@ -565,16 +592,43 @@ class SP_Player extends SP_Custom_Post { if ( $admin ) { if ( 1 == $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 { 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 ) { + 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; } + } } endforeach; diff --git a/includes/class-sp-post-types.php b/includes/class-sp-post-types.php index c2e78030..c2e2519d 100644 --- a/includes/class-sp-post-types.php +++ b/includes/class-sp-post-types.php @@ -392,6 +392,9 @@ class SP_Post_types { 'search_items' => __( 'Search', 'sportspress' ), 'not_found' => __( '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, 'show_ui' => true, diff --git a/modules/sportspress-icons.php b/modules/sportspress-icons.php index d3d40351..e17f4496 100644 --- a/modules/sportspress-icons.php +++ b/modules/sportspress-icons.php @@ -41,6 +41,7 @@ class SportsPress_Icons { 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_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', 'shoe', 'card', + 'league', + 'shield', + 'tshirt', + 'whistle', + 'time', + 'friendly', 'sub', 'update', 'undo', @@ -143,7 +150,7 @@ class SportsPress_Icons { // Bypass if not performance post type $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 $is_uploaded = isset( $_POST['thumbnail_id'] ); diff --git a/templates/player-list.php b/templates/player-list.php index 723aa263..3a839a64 100644 --- a/templates/player-list.php +++ b/templates/player-list.php @@ -53,7 +53,7 @@ if ( isset( $columns ) && null !== $columns ): endif; $data = $list->data(); -// The first row should be column labels +// The first row should be labels $labels = $data[0]; //Create a unique identifier based on the current time in microseconds @@ -62,7 +62,7 @@ $identifier = uniqid( 'playerlist_' ); if ( true == $responsive ){ //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] ); if ( $grouping === null || $grouping === 'default' ): @@ -122,6 +122,25 @@ foreach ( $groups as $group ): if ( intval( $number ) > 0 ) $limit = $number; + $thead = '' . ''; + + if ( ! is_array( $labels ) || array_key_exists( 'number', $labels ) ): + if ( in_array( $orderby, array( 'number', 'name' ) ) ): + $thead .= '#'; + else: + $thead .= '' . __( 'Rank', 'sportspress' ) . ''; + endif; + endif; + + foreach( $labels as $key => $label ): + if ( $key !== 'number' && ( ! is_array( $columns ) || $key == 'name' || in_array( $key, $columns ) ) ) + $thead .= ''. $label . ''; + if ( preg_match ( "/title=\"(.*?)\"/", $label, $new_label ) ) + $labels[$key] = $label[1]; + endforeach; + + $thead .= '' . ''; + $tbody = ''; 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; $output .= '
' . - '' . '' . ''; - - if ( ! is_array( $labels ) || array_key_exists( 'number', $labels ) ): - if ( in_array( $orderby, array( 'number', 'name' ) ) ): - $output .= ''; - else: - $output .= ''; - endif; - endif; - - foreach( $labels as $key => $label ): - if ( $key !== 'number' && ( ! is_array( $columns ) || $key == 'name' || in_array( $key, $columns ) ) ) - $output .= ''; - endforeach; - - $output .= '' . '' . ''; + '
#' . __( 'Rank', 'sportspress' ) . ''. $label . '
'; + + $output .= $thead . ''; $output .= $tbody;