Add support of Player Performance and Player statistic icons to Player Profile template and simplify the loop logic

This commit is contained in:
savvasha
2018-05-16 20:26:52 +03:00
parent 563d8afa1f
commit 379fbf26bf
3 changed files with 66 additions and 23 deletions

View File

@@ -224,8 +224,6 @@ class SP_Player_List extends SP_Secondary_Post {
}else{ }else{
$columns[ $stat->post_name ] = $stat->post_title; $columns[ $stat->post_name ] = $stat->post_title;
} }
// Add columns titles for using with data-label
$columns_title[ $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 );
@@ -677,24 +675,19 @@ class SP_Player_List extends SP_Secondary_Post {
endif; endif;
$labels = array(); $labels = array();
$labels_title = array();
foreach( $this->columns as $key ): foreach( $this->columns as $key ):
if ( $key == 'number' ): if ( $key == 'number' ):
$labels[ $key ] = '#'; $labels[ $key ] = '#';
$labels_title[ $key ] = '#';
elseif ( $key == 'team' ): elseif ( $key == 'team' ):
$labels[ $key ] = __( 'Team', 'sportspress' ); $labels[ $key ] = __( 'Team', 'sportspress' );
$labels_title[ $key ] = __( 'Team', 'sportspress' );
elseif ( $key == 'position' ): elseif ( $key == 'position' ):
$labels[ $key ] = __( 'Position', 'sportspress' ); $labels[ $key ] = __( 'Position', 'sportspress' );
$labels_title[ $key ] = __( 'Position', 'sportspress' );
elseif ( array_key_exists( $key, $columns ) ): elseif ( array_key_exists( $key, $columns ) ):
$labels[ $key ] = $columns[ $key ]; $labels[ $key ] = $columns[ $key ];
$labels_title[ $key ] = $columns_title[ $key ];
endif; endif;
endforeach; endforeach;
return array( $labels, $labels_title, $data, $placeholders, $merged, $orderby ); return array( $labels, $data, $placeholders, $merged, $orderby );
else: else:
// Convert to time notation // Convert to time notation
@@ -726,7 +719,6 @@ class SP_Player_List extends SP_Secondary_Post {
foreach ( $columns as $key => $label ): foreach ( $columns as $key => $label ):
if ( ! in_array( $key, $this->columns ) ): if ( ! in_array( $key, $this->columns ) ):
unset( $columns[ $key ] ); unset( $columns[ $key ] );
unset( $columns_title[ $key ] );
endif; endif;
endforeach; endforeach;
@@ -740,8 +732,7 @@ class SP_Player_List extends SP_Secondary_Post {
$labels['position'] = __( 'Position', 'sportspress' ); $labels['position'] = __( 'Position', 'sportspress' );
} }
$merged['head'] = array_merge( $labels, $columns ); $merged[0] = array_merge( $labels, $columns );
$merged[0] = array_merge( $labels, $columns_title );
return $merged; return $merged;
endif; endif;
} }

View File

@@ -184,8 +184,17 @@ class SP_Player extends SP_Custom_Post {
foreach ( $posts as $post ): foreach ( $posts as $post ):
if ( -1 === $section ) { if ( -1 === $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; $performance_labels[ $post->post_name ] = $post->post_title;
} else { }
}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 ) {
@@ -193,8 +202,17 @@ 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; $performance_labels[ $post->post_name ] = $post->post_title;
} }
}else{
$performance_labels[ $post->post_name ] = $post->post_title;
}
}
} }
$format = get_post_meta( $post->ID, 'sp_format', true ); $format = get_post_meta( $post->ID, 'sp_format', true );
@@ -566,7 +584,16 @@ class SP_Player extends SP_Custom_Post {
foreach ( $posts as $post ): foreach ( $posts as $post ):
if ( -1 === $section ) { if ( -1 === $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; $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 );
@@ -577,16 +604,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 ) {
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; $stats[ $post->post_name ] = $post->post_title;
} }
} else { } else {
if ( 1 != $post_section ) {
$stats[ $post->post_name ] = $post->post_title; $stats[ $post->post_name ] = $post->post_title;
} }
} }
} else {
if ( 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;
}
}
}
} 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; $stats[ $post->post_name ] = $post->post_title;
} }
}else{
$stats[ $post->post_name ] = $post->post_title;
}
}
} }
endforeach; endforeach;

View File

@@ -53,12 +53,9 @@ if ( isset( $columns ) && null !== $columns ):
endif; endif;
$data = $list->data(); $data = $list->data();
// The first row should be data-label labels // The first row should be labels
$labels = $data[0]; $labels = $data[0];
// The 'head' row should be column labels
$labels_head = $data['head'];
//Create a unique identifier based on the current time in microseconds //Create a unique identifier based on the current time in microseconds
$identifier = uniqid( 'playerlist_' ); $identifier = uniqid( 'playerlist_' );
// If responsive tables are enabled then load the inline css code // If responsive tables are enabled then load the inline css code
@@ -67,7 +64,6 @@ if ( true == $responsive ){
} }
// Remove the first row and 'head' 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] );
unset( $data['head'] );
if ( $grouping === null || $grouping === 'default' ): if ( $grouping === null || $grouping === 'default' ):
$grouping = $list->grouping; $grouping = $list->grouping;
@@ -136,9 +132,11 @@ foreach ( $groups as $group ):
endif; endif;
endif; endif;
foreach( $labels_head as $key => $label ): foreach( $labels as $key => $label ):
if ( $key !== 'number' && ( ! is_array( $columns ) || $key == 'name' || in_array( $key, $columns ) ) ) if ( $key !== 'number' && ( ! is_array( $columns ) || $key == 'name' || in_array( $key, $columns ) ) )
$thead .= '<th class="data-' . $key . '">'. $label . '</th>'; $thead .= '<th class="data-' . $key . '">'. $label . '</th>';
if ( preg_match ( "/title=\"(.*?)\"/", $label, $new_label ) )
$labels[$key] = $label[1];
endforeach; endforeach;
$thead .= '</tr>' . '</thead>'; $thead .= '</tr>' . '</thead>';