diff --git a/assets/js/admin/sportspress-admin.js b/assets/js/admin/sportspress-admin.js index b5126606..a1b282cd 100644 --- a/assets/js/admin/sportspress-admin.js +++ b/assets/js/admin/sportspress-admin.js @@ -579,7 +579,8 @@ jQuery(document).ready(function($){ nonce: $("#sp-inline-nonce").val() }, function(response) { $column.find(".sp-edit-result").each(function() { - $column.find(".sp-result[data-team='"+$(this).data("team")+"']").html($(this).val()); + val = $(this).val(); + $column.find(".sp-result[data-team='"+$(this).data("team")+"']").html(val==''?'-':val); }); $column.find(".sp-edit-result, .sp-inline-edit-save").hide(); $column.find(".sp-result, .sp-row-actions").show(); diff --git a/includes/admin/class-sp-admin-ajax.php b/includes/admin/class-sp-admin-ajax.php index 28b878e6..59b0ba93 100644 --- a/includes/admin/class-sp-admin-ajax.php +++ b/includes/admin/class-sp-admin-ajax.php @@ -46,6 +46,7 @@ class SP_Admin_AJAX { $post_id = sp_array_value( $_POST, 'post_id' ); $results = sp_array_value( $_POST, 'results' ); + $main_result = get_option( 'sportspress_primary_result', null ); if ( ! $post_id || ! is_array( $results ) ) { // Return error @@ -55,14 +56,75 @@ class SP_Admin_AJAX { // Get current results meta $meta = get_post_meta( $post_id, 'sp_results', true ); + $primary_results = array(); foreach ( $results as $result ) { $id = sp_array_value( $result, 'id' ); $key = sp_array_value( $result, 'key' ); + + $primary_results[ $id ] = sp_array_value( $result, 'result', null ); + if ( ! $id || ! $key ) continue; $meta[ $id ][ $key ] = sp_array_value( $result, 'result' ); } + arsort( $primary_results ); + + if ( count( $primary_results ) && ! in_array( null, $primary_results ) ) { + if ( count( array_unique( $primary_results ) ) === 1 ) { + $args = array( + 'post_type' => 'sp_outcome', + 'numberposts' => -1, + 'posts_per_page' => -1, + 'meta_key' => 'sp_condition', + 'meta_value' => '=', + ); + $outcomes = get_posts( $args ); + foreach ( $meta as $team => $team_results ) { + if ( $outcomes ) { + $meta[ $team ][ 'outcome' ] = array(); + foreach ( $outcomes as $outcome ) { + $meta[ $team ][ 'outcome' ][] = $outcome->post_name; + } + } + } + } else { + reset( $primary_results ); + $max = key( $primary_results ); + $args = array( + 'post_type' => 'sp_outcome', + 'numberposts' => -1, + 'posts_per_page' => -1, + 'meta_key' => 'sp_condition', + 'meta_value' => '>', + ); + $outcomes = get_posts( $args ); + if ( $outcomes ) { + $meta[ $max ][ 'outcome' ] = array(); + foreach ( $outcomes as $outcome ) { + $meta[ $max ][ 'outcome' ][] = $outcome->post_name; + } + } + + end( $primary_results ); + $min = key( $primary_results ); + $args = array( + 'post_type' => 'sp_outcome', + 'numberposts' => -1, + 'posts_per_page' => -1, + 'meta_key' => 'sp_condition', + 'meta_value' => '<', + ); + $outcomes = get_posts( $args ); + if ( $outcomes ) { + $meta[ $min ][ 'outcome' ] = array(); + foreach ( $outcomes as $outcome ) { + $meta[ $min ][ 'outcome' ][] = $outcome->post_name; + } + } + } + } + // Update results update_post_meta( $post_id, 'sp_results', $meta ); diff --git a/includes/admin/post-types/class-sp-admin-cpt-event.php b/includes/admin/post-types/class-sp-admin-cpt-event.php index 4465afc2..3aee5ab4 100644 --- a/includes/admin/post-types/class-sp-admin-cpt-event.php +++ b/includes/admin/post-types/class-sp-admin-cpt-event.php @@ -153,8 +153,7 @@ class SP_Admin_CPT_Event extends SP_Admin_CPT { $team_results = implode( ' | ', $team_results ); endif; - if ( $team_result == null ) $team_result = '-'; - echo '' . $team_result . ''; + echo '' . ( $team_result == '' ? '-' : $team_result ) . ''; echo ' '; echo $team->post_title; echo '
'; diff --git a/includes/admin/post-types/meta-boxes/class-sp-meta-box-event-results.php b/includes/admin/post-types/meta-boxes/class-sp-meta-box-event-results.php index c8fb3dfb..826f2da0 100644 --- a/includes/admin/post-types/meta-boxes/class-sp-meta-box-event-results.php +++ b/includes/admin/post-types/meta-boxes/class-sp-meta-box-event-results.php @@ -35,7 +35,7 @@ class SP_Meta_Box_Event_Results { $primary_results = array(); foreach ( $results as $team => $team_results ) { if ( $main_result ) { - $primary_results[ $team ] = sportspress_array_value( $team_results, $main_result, null ); + $primary_results[ $team ] = sp_array_value( $team_results, $main_result, null ); } else { if ( is_array( $team_results ) ) { end( $team_results ); @@ -48,56 +48,61 @@ class SP_Meta_Box_Event_Results { arsort( $primary_results ); - if ( count( $primary_results ) && ! in_array( null, $primary_results ) && count( array_unique( $primary_results ) ) === 1 ) { - $args = array( - 'post_type' => 'sp_outcome', - 'numberposts' => -1, - 'posts_per_page' => -1, - 'meta_key' => 'sp_condition', - 'meta_value' => '=', - ); - $outcomes = get_posts( $args ); - foreach ( $results as $team => $team_results ) { - if ( array_key_exists( 'outcome', $team_results ) ) continue; - if ( $outcomes ) { - foreach ( $outcomes as $outcome ) { - $results[ $team ][ 'outcome' ] = $outcome->post_name; - } - } - } - } else { - reset( $primary_results ); - $max = key( $primary_results ); - if ( ! array_key_exists( 'outcome', $results[ $max ] ) ) { + if ( count( $primary_results ) && ! in_array( null, $primary_results ) ) { + if ( count( array_unique( $primary_results ) ) === 1 ) { $args = array( 'post_type' => 'sp_outcome', 'numberposts' => -1, 'posts_per_page' => -1, 'meta_key' => 'sp_condition', - 'meta_value' => '>', + 'meta_value' => '=', ); $outcomes = get_posts( $args ); - if ( $outcomes ) { - foreach ( $outcomes as $outcome ) { - $results[ $max ][ 'outcome' ] = $outcome->post_name; + foreach ( $results as $team => $team_results ) { + if ( array_key_exists( 'outcome', $team_results ) ) continue; + if ( $outcomes ) { + $results[ $team ][ 'outcome' ] = array(); + foreach ( $outcomes as $outcome ) { + $results[ $team ][ 'outcome' ][] = $outcome->post_name; + } + } + } + } else { + reset( $primary_results ); + $max = key( $primary_results ); + if ( ! array_key_exists( 'outcome', $results[ $max ] ) ) { + $args = array( + 'post_type' => 'sp_outcome', + 'numberposts' => -1, + 'posts_per_page' => -1, + 'meta_key' => 'sp_condition', + 'meta_value' => '>', + ); + $outcomes = get_posts( $args ); + if ( $outcomes ) { + $results[ $max ][ 'outcome' ] = array(); + foreach ( $outcomes as $outcome ) { + $results[ $max ][ 'outcome' ][] = $outcome->post_name; + } } } - } - end( $primary_results ); - $min = key( $primary_results ); - if ( ! array_key_exists( 'outcome', $results[ $min ] ) ) { - $args = array( - 'post_type' => 'sp_outcome', - 'numberposts' => -1, - 'posts_per_page' => -1, - 'meta_key' => 'sp_condition', - 'meta_value' => '<', - ); - $outcomes = get_posts( $args ); - if ( $outcomes ) { - foreach ( $outcomes as $outcome ) { - $results[ $min ][ 'outcome' ] = $outcome->post_name; + end( $primary_results ); + $min = key( $primary_results ); + if ( ! array_key_exists( 'outcome', $results[ $min ] ) ) { + $args = array( + 'post_type' => 'sp_outcome', + 'numberposts' => -1, + 'posts_per_page' => -1, + 'meta_key' => 'sp_condition', + 'meta_value' => '<', + ); + $outcomes = get_posts( $args ); + if ( $outcomes ) { + $results[ $min ][ 'outcome' ] = array(); + foreach ( $outcomes as $outcome ) { + $results[ $min ][ 'outcome' ][] = $outcome->post_name; + } } } }