From 60346c1f6a0f0ed32f68470cc323d839572e79da Mon Sep 17 00:00:00 2001 From: savvasha Date: Wed, 19 Dec 2018 07:15:10 +0200 Subject: [PATCH 1/6] First Commit for bypassing default ordering of league tables --- .../class-sp-meta-box-table-details.php | 29 ++++++++++++++ includes/class-sp-league-table.php | 40 ++++++++++++++++++- 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/includes/admin/post-types/meta-boxes/class-sp-meta-box-table-details.php b/includes/admin/post-types/meta-boxes/class-sp-meta-box-table-details.php index 879bd4a2..7b6e562a 100644 --- a/includes/admin/post-types/meta-boxes/class-sp-meta-box-table-details.php +++ b/includes/admin/post-types/meta-boxes/class-sp-meta-box-table-details.php @@ -29,6 +29,8 @@ class SP_Meta_Box_Table_Details { $date_to = get_post_meta( $post->ID, 'sp_date_to', true ); $date_past = get_post_meta( $post->ID, 'sp_date_past', true ); $date_relative = get_post_meta( $post->ID, 'sp_date_relative', true ); + $orderby = get_post_meta( $post->ID, 'sp_orderby', true ); + $order = get_post_meta( $post->ID, 'sp_order', true ); ?>

@@ -90,6 +92,31 @@ class SP_Meta_Box_Table_Details { } ?>
+

+

+ array( + 'default' => __( 'Default', 'sportspress' ), + 'name' => __( 'Name', 'sportspress' ), + ), + 'post_type' => array( 'sp_column' ), + 'name' => 'sp_orderby', + 'selected' => $orderby, + 'values' => 'slug', + ); + sp_dropdown_pages( $args ); + ?> +

+ +

+

+ +

+ ID, 'sp_columns', true ); $adjustments = get_post_meta( $this->ID, 'sp_adjustments', true ); $select = get_post_meta( $this->ID, 'sp_select', true ); + $this->orderby = get_post_meta( $this->ID, 'sp_orderby', true ); + $this->orderbyorder = get_post_meta( $this->ID, 'sp_order', true ); $link_events = get_option( 'sportspress_link_events', 'yes' ) === 'yes' ? true : false; $form_limit = (int) get_option( 'sportspress_form_limit', 5 ); @@ -47,7 +53,10 @@ class SP_League_Table extends SP_Secondary_Post { $this->date = 0; // Apply defaults + if ( empty( $this->orderby ) ) $this->orderby = 'default'; + if ( empty( $this->orderbyorder ) ) $this->orderbyorder = 'ASC'; if ( empty( $select ) ) $select = 'auto'; + if ( 'range' == $this->date ) { @@ -752,7 +761,12 @@ class SP_League_Table extends SP_Secondary_Post { $merged[ $team_id ]['pos'] = $this->calculate_pos( $team_columns, $team_id, false ); } } - +var_dump($merged); + // Rearrange the table if Default ordering is not selected + if ( $this->orderby != 'default' ) { + uasort( $merged, array( $this, 'simple_order' ) ); + } + // Rearrange data array to reflect values $data = array(); foreach( $merged as $key => $value ): @@ -804,6 +818,30 @@ class SP_League_Table extends SP_Secondary_Post { // Default sort by alphabetical return strcmp( sp_array_value( $a, 'name', '' ), sp_array_value( $b, 'name', '' ) ); } + + /** + * Sort the table by ordering. + * + * @param array $a + * @param array $b + * @return int + */ + public function simple_order( $a, $b ) { + + if ( $this->orderbyorder == 'DESC' ) { + if ( $this->orderby == 'name' ){ + return strcmp( sp_array_value( $b, 'name', '' ), sp_array_value( $a, 'name', '' ) ); + }else{ + return $b[ $this->orderby ] - $a[ $this->orderby ]; + } + }else{ + if ( $this->orderby == 'name' ){ + return strcmp( sp_array_value( $a, 'name', '' ), sp_array_value( $b, 'name', '' ) ); + }else{ + return $a[ $this->orderby ] - $b[ $this->orderby ]; + } + } + } /** * Find accurate position of teams. From 61da58e461330feb8ac4a57e32b7fbe6236fc20c Mon Sep 17 00:00:00 2001 From: savvasha Date: Wed, 19 Dec 2018 08:35:15 +0200 Subject: [PATCH 2/6] Final commit --- includes/class-sp-league-table.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/includes/class-sp-league-table.php b/includes/class-sp-league-table.php index f7d05809..42f91b7f 100644 --- a/includes/class-sp-league-table.php +++ b/includes/class-sp-league-table.php @@ -761,10 +761,16 @@ class SP_League_Table extends SP_Secondary_Post { $merged[ $team_id ]['pos'] = $this->calculate_pos( $team_columns, $team_id, false ); } } -var_dump($merged); + // Rearrange the table if Default ordering is not selected if ( $this->orderby != 'default' ) { uasort( $merged, array( $this, 'simple_order' ) ); + // Recalculate position of teams + $this->pos = 0; + $this->counter = 0; + foreach ( $merged as $team_id => $team_columns ) { + $merged[ $team_id ]['pos'] = $this->calculate_pos( $team_columns, $team_id, false ); + } } // Rearrange data array to reflect values @@ -832,13 +838,13 @@ var_dump($merged); if ( $this->orderby == 'name' ){ return strcmp( sp_array_value( $b, 'name', '' ), sp_array_value( $a, 'name', '' ) ); }else{ - return $b[ $this->orderby ] - $a[ $this->orderby ]; + return (float) $b[ $this->orderby ] - (float) $a[ $this->orderby ]; } }else{ if ( $this->orderby == 'name' ){ return strcmp( sp_array_value( $a, 'name', '' ), sp_array_value( $b, 'name', '' ) ); }else{ - return $a[ $this->orderby ] - $b[ $this->orderby ]; + return (float) $a[ $this->orderby ] - (float) $b[ $this->orderby ]; } } } From b0e3732b90cfb28e93cffe6828dec02ce6c918ec Mon Sep 17 00:00:00 2001 From: savvasha Date: Sat, 23 Feb 2019 08:01:04 +0200 Subject: [PATCH 3/6] Avoid php warning. --- .../post-types/meta-boxes/class-sp-meta-box-table-details.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/includes/admin/post-types/meta-boxes/class-sp-meta-box-table-details.php b/includes/admin/post-types/meta-boxes/class-sp-meta-box-table-details.php index 7b6e562a..a0a462ef 100644 --- a/includes/admin/post-types/meta-boxes/class-sp-meta-box-table-details.php +++ b/includes/admin/post-types/meta-boxes/class-sp-meta-box-table-details.php @@ -31,6 +31,9 @@ class SP_Meta_Box_Table_Details { $date_relative = get_post_meta( $post->ID, 'sp_date_relative', true ); $orderby = get_post_meta( $post->ID, 'sp_orderby', true ); $order = get_post_meta( $post->ID, 'sp_order', true ); + if ( ! $order ) { + $order = 'ASC'; + } ?>

From 1c540903cd78edfa3d3831b4e2c771ed681fb51b Mon Sep 17 00:00:00 2001 From: savvasha Date: Fri, 1 Mar 2019 18:37:04 +0200 Subject: [PATCH 4/6] Make it a little bit "smarter" using jQuery to avoid default $order value --- assets/js/admin/sportspress-admin.js | 9 ++++++++ .../class-sp-meta-box-table-details.php | 21 ++++++++----------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/assets/js/admin/sportspress-admin.js b/assets/js/admin/sportspress-admin.js index c9d8c666..893e2435 100644 --- a/assets/js/admin/sportspress-admin.js +++ b/assets/js/admin/sportspress-admin.js @@ -886,4 +886,13 @@ jQuery(document).ready(function($){ // Trigger box score time converter $('.sp-convert-time-input').change(); + + // Trigger show/hide of team table ordering + $('#sp_orderby').change(function(){ + if ($('#sp_orderby').val() == 'default') { + $("#sp_order").hide(); + }else{ + $('#sp_order').show(); + } + }); }); \ No newline at end of file diff --git a/includes/admin/post-types/meta-boxes/class-sp-meta-box-table-details.php b/includes/admin/post-types/meta-boxes/class-sp-meta-box-table-details.php index a0a462ef..e4302f22 100644 --- a/includes/admin/post-types/meta-boxes/class-sp-meta-box-table-details.php +++ b/includes/admin/post-types/meta-boxes/class-sp-meta-box-table-details.php @@ -31,9 +31,6 @@ class SP_Meta_Box_Table_Details { $date_relative = get_post_meta( $post->ID, 'sp_date_relative', true ); $orderby = get_post_meta( $post->ID, 'sp_orderby', true ); $order = get_post_meta( $post->ID, 'sp_order', true ); - if ( ! $order ) { - $order = 'ASC'; - } ?>

@@ -111,15 +108,15 @@ class SP_Meta_Box_Table_Details { sp_dropdown_pages( $args ); ?>

- -

-

- -

- +
> +

+

+ +

+
Date: Sat, 2 Mar 2019 07:43:58 +0200 Subject: [PATCH 5/6] Add Event Specs to Event-List Shortcode --- includes/class-sp-ajax.php | 1 + 1 file changed, 1 insertion(+) diff --git a/includes/class-sp-ajax.php b/includes/class-sp-ajax.php index 3649941d..b81960f2 100644 --- a/includes/class-sp-ajax.php +++ b/includes/class-sp-ajax.php @@ -628,6 +628,7 @@ class SP_AJAX { 'season' => __( 'Season', 'sportspress' ), 'venue' => __( 'Venue', 'sportspress' ), 'article' => __( 'Article', 'sportspress' ), + 'event_specs' => __( 'Specs', 'sportspress' ), ); $field_name = 'columns[]'; $field_id = 'columns'; From cfbeac8ecf41292a13936590cea266ff3f659128 Mon Sep 17 00:00:00 2001 From: savvasha Date: Sun, 3 Mar 2019 16:40:37 +0200 Subject: [PATCH 6/6] Revert "Add Event Specs to Event-List Shortcode" This reverts commit 37aa16a86cdc132d4a35babb15a85a30c7ddd81b. --- includes/class-sp-ajax.php | 1 - 1 file changed, 1 deletion(-) diff --git a/includes/class-sp-ajax.php b/includes/class-sp-ajax.php index b81960f2..3649941d 100644 --- a/includes/class-sp-ajax.php +++ b/includes/class-sp-ajax.php @@ -628,7 +628,6 @@ class SP_AJAX { 'season' => __( 'Season', 'sportspress' ), 'venue' => __( 'Venue', 'sportspress' ), 'article' => __( 'Article', 'sportspress' ), - 'event_specs' => __( 'Specs', 'sportspress' ), ); $field_name = 'columns[]'; $field_id = 'columns';