Merge branch 'master' into patch-19

This commit is contained in:
Brian Miyaji
2020-03-30 15:29:11 +11:00
committed by GitHub
25 changed files with 228 additions and 121 deletions

View File

@@ -1,5 +1,19 @@
== SportsPress Changelog ==
= 2.7 =
* Feature - New bulk actions to postpone and cancel multiple events.
* Feature - Add date of birth to player importer.
* Feature - Automatically select the home team's venue as the default venue when importing fixtures.
* Feature - Add ability to turn on comment for team profiles.
* Feature - Filter league tables by event status.
* Tweak - When an icon is used for player performance, display the icon in player lists and profiles.
* Tweak - Add title attribute for player statistic icons.
* Tweak - Default stylesheet sorting icon width.
* Fix - Icon color picker rendering issue.
* Fix - Image selector not working for player statistics.
* Fix - Enqueue scripts and styles for OpenStreetMap when used in shortcodes.
* Localization - Add translation options for countdown units.
= 2.6.20 =
* Tweak - Improve compatibility with volleyball for checkbox performance.
* Preset - Update volleyball preset with additional options.

View File

@@ -479,7 +479,7 @@ if ( class_exists( 'WP_Importer' ) ) {
<?php
}
?>
<br>
</ul>
</fieldset>
</td>
</tr>

View File

@@ -5,7 +5,7 @@
* @author ThemeBoy
* @category Admin
* @package SportsPress/Admin/Importers
* @version 2.5
* @version 2.7
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

View File

@@ -5,7 +5,7 @@
* @author ThemeBoy
* @category Admin
* @package SportsPress/Admin/Importers
* @version 2.6.9
* @version 2.7
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

View File

@@ -5,7 +5,7 @@
* @author ThemeBoy
* @category Admin
* @package SportsPress/Admin/Post_Types
* @version 2.6.5
* @version 2.7
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
@@ -44,6 +44,9 @@ class SP_Admin_CPT_Event extends SP_Admin_CPT {
// Filtering
add_action( 'restrict_manage_posts', array( $this, 'filters' ) );
add_filter( 'parse_query', array( $this, 'filters_query' ) );
// Post states
add_filter( 'display_post_states', array( $this, 'post_states' ), 10, 2 );
// Call SP_Admin_CPT constructor
parent::__construct();
@@ -294,27 +297,47 @@ class SP_Admin_CPT_Event extends SP_Admin_CPT {
wp_nonce_field( 'sp-save-inline-results', 'sp-inline-nonce', false );
}
/**
* Filter in admin based on options
*
* @param mixed $query
*/
public function filters_query( $query ) {
global $typenow, $wp_query;
/**
* Filter in admin based on options
*
* @param mixed $query
*/
public function filters_query( $query ) {
global $typenow, $wp_query;
if ( $typenow == 'sp_event' ) {
if ( $typenow == 'sp_event' ) {
if ( ! empty( $_GET['team'] ) ) {
$query->query_vars['meta_value'] = $_GET['team'];
$query->query_vars['meta_key'] = 'sp_team';
}
if ( ! empty( $_GET['team'] ) ) {
$query->query_vars['meta_value'] = $_GET['team'];
$query->query_vars['meta_key'] = 'sp_team';
}
if ( ! empty( $_GET['match_day'] ) ) {
$query->query_vars['meta_value'] = $_GET['match_day'];
$query->query_vars['meta_key'] = 'sp_day';
}
}
}
if ( ! empty( $_GET['match_day'] ) ) {
$query->query_vars['meta_value'] = $_GET['match_day'];
$query->query_vars['meta_key'] = 'sp_day';
}
}
}
/**
* Replace displayed post state for events
*
* @param array $post_states
* @param object $post
*/
public function post_states( $post_states, $post ) {
$status = get_post_meta( $post->ID, 'sp_status', true );
if ( 'postponed' == $status ) {
$post_states = array( __( 'Postponed', 'sportspress' ) );
} elseif ( 'cancelled' == $status ) {
$post_states = array( __( 'Canceled', 'sportspress' ) );
} elseif ( 'tbd' == $status ) {
$post_states = array( __( 'TBD', 'sportspress' ) );
}
return $post_states;
}
}
endif;

View File

@@ -5,7 +5,7 @@
* @author ThemeBoy
* @category Admin
* @package SportsPress/Admin/Meta_Boxes
* @version 2.5.5
* @version 2.7
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

View File

@@ -5,7 +5,7 @@
* @author ThemeBoy
* @category Admin
* @package SportsPress/Admin
* @version 2.6
* @version 2.7
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

View File

@@ -8,7 +8,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
* AJAX Event Handler
*
* @class SP_AJAX
* @version 2.6.15
* @version 2.7
* @package SportsPress/Classes
* @category Class
* @author ThemeBoy

View File

@@ -5,7 +5,7 @@
* The SportsPress league table class handles individual league table data.
*
* @class SP_League_Table
* @version 2.6.15
* @version 2.7
* @package SportsPress/Classes
* @category Class
* @author ThemeBoy

View File

@@ -5,7 +5,7 @@
* The SportsPress player list class handles individual player list data.
*
* @class SP_Player_List
* @version 2.6.19
* @version 2.7
* @package SportsPress/Classes
* @category Class
* @author ThemeBoy

View File

@@ -5,7 +5,7 @@
* The SportsPress player class handles individual player data.
*
* @class SP_Player
* @version 2.6.19
* @version 2.7
* @package SportsPress/Classes
* @category Class
* @author ThemeBoy

View File

@@ -9,7 +9,7 @@ if ( ! defined( 'ABSPATH' ) ) {
* Registers post types and taxonomies
*
* @class SP_Post_types
* @version 2.6.13
* @version 2.7
* @package SportsPress/Classes
* @category Class
* @author ThemeBoy

View File

@@ -7,7 +7,7 @@
* @author ThemeBoy
* @category Core
* @package SportsPress/Functions
* @version 2.6.6
* @version 2.7
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

View File

@@ -7,7 +7,7 @@
* @author ThemeBoy
* @category Core
* @package SportsPress/Functions
* @version 2.6.19
* @version 2.7
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

View File

@@ -1,6 +1,6 @@
SportsPress
Copyright 2019 by the contributors
Copyright 2020 by the contributors
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -5,7 +5,7 @@ Plugin URI: http://themeboy.com/
Description: Add bulk actions to SportsPress.
Author: ThemeBoy
Author URI: http://themeboy.com/
Version: 2.2
Version: 2.7
*/
// Exit if accessed directly
@@ -17,89 +17,145 @@ if ( ! class_exists( 'SportsPress_Bulk_Actions' ) ) :
* Main SportsPress Bulk Actions Class
*
* @class SportsPress_Bulk_Actions
* @version 2.2
* @version 2.7
*/
class SportsPress_Bulk_Actions {
/**
* Constructor
*/
public function __construct() {
// Define constants
$this->define_constants();
/**
* Constructor
*/
public function __construct() {
// Define constants
$this->define_constants();
// Teams
add_filter( 'bulk_actions-edit-sp_team', array( $this, 'team_actions' ) );
add_filter( 'handle_bulk_actions-edit-sp_team', array( $this, 'team_actions_handler' ), 10, 3 );
add_action( 'admin_notices', array( $this, 'admin_notices' ) );
}
// Teams
add_filter( 'bulk_actions-edit-sp_team', array( $this, 'team_actions' ) );
add_filter( 'handle_bulk_actions-edit-sp_team', array( $this, 'team_actions_handler' ), 10, 3 );
/**
* Define constants.
*/
private function define_constants() {
if ( !defined( 'SP_BULK_ACTIONS_VERSION' ) )
define( 'SP_BULK_ACTIONS_VERSION', '2.2' );
// Events
add_filter( 'bulk_actions-edit-sp_event', array( $this, 'event_actions' ) );
add_filter( 'handle_bulk_actions-edit-sp_event', array( $this, 'event_actions_handler' ), 10, 3 );
if ( !defined( 'SP_BULK_ACTIONS_URL' ) )
define( 'SP_BULK_ACTIONS_URL', plugin_dir_url( __FILE__ ) );
// Notices
add_action( 'admin_notices', array( $this, 'admin_notices' ) );
}
if ( !defined( 'SP_BULK_ACTIONS_DIR' ) )
define( 'SP_BULK_ACTIONS_DIR', plugin_dir_path( __FILE__ ) );
}
/**
* Define constants.
*/
private function define_constants() {
if ( !defined( 'SP_BULK_ACTIONS_VERSION' ) )
define( 'SP_BULK_ACTIONS_VERSION', '2.7' );
/**
* Add option to the team bulk actions dropdown.
*/
public function team_actions( $bulk_actions ) {
$bulk_actions['sp_calendar'] = __( 'Generate Calendars', 'sportspress' );
return $bulk_actions;
}
if ( !defined( 'SP_BULK_ACTIONS_URL' ) )
define( 'SP_BULK_ACTIONS_URL', plugin_dir_url( __FILE__ ) );
/**
* Handle form submission for team bulk actions.
*/
public function team_actions_handler( $redirect_to, $doaction, $post_ids ) {
if ( $doaction !== 'sp_calendar' ) {
return $redirect_to;
}
if ( !defined( 'SP_BULK_ACTIONS_DIR' ) )
define( 'SP_BULK_ACTIONS_DIR', plugin_dir_path( __FILE__ ) );
}
foreach ( $post_ids as $post_id ) {
$post = array();
$post['post_title'] = get_the_title( $post_id ) . ' ' . __( 'Calendar', 'sportspress' );
$post['post_type'] = 'sp_calendar';
$post['post_status'] = 'publish';
/**
* Add option to the team bulk actions dropdown.
*/
public function team_actions( $bulk_actions ) {
$bulk_actions['sp_calendar'] = __( 'Generate Calendars', 'sportspress' );
return $bulk_actions;
}
// Insert post
$id = wp_insert_post( $post );
/**
* Handle form submission for team bulk actions.
*/
public function team_actions_handler( $redirect_to, $doaction, $post_ids ) {
if ( $doaction !== 'sp_calendar' ) {
return $redirect_to;
}
// Flag as bulk
update_post_meta( $id, '_sp_bulk', 1 );
foreach ( $post_ids as $post_id ) {
$post = array();
$post['post_title'] = get_the_title( $post_id ) . ' ' . __( 'Calendar', 'sportspress' );
$post['post_type'] = 'sp_calendar';
$post['post_status'] = 'publish';
// Update meta
update_post_meta( $id, 'sp_team', $post_id );
update_post_meta( $id, 'sp_format', 'calendar' );
}
// Insert post
$id = wp_insert_post( $post );
$redirect_to = add_query_arg( 'sp_bulk_generated_calendars', count( $post_ids ), $redirect_to );
return $redirect_to;
}
// Flag as bulk
update_post_meta( $id, '_sp_bulk', 1 );
/**
* Display notices after form submission.
*/
public function admin_notices() {
if ( ! empty( $_REQUEST['sp_bulk_generated_calendars'] ) ) {
$count = intval( $_REQUEST['sp_bulk_generated_calendars'] );
// Update meta
update_post_meta( $id, 'sp_team', $post_id );
update_post_meta( $id, 'sp_format', 'calendar' );
}
printf( '<div id="message" class="updated notice notice-success is-dismissible"><p>' .
_n( 'Generated %s calendar.',
'Generated %s calendars.',
$count,
'sportspress'
) . ' <a href="' . admin_url('edit.php?post_type=sp_calendar') . '">' . __( 'View', 'sportspress' ) . '</a></p><button type="button" class="notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></button></div>', $count );
}
}
$redirect_to = add_query_arg( 'sp_bulk_generated_calendars', count( $post_ids ), $redirect_to );
return $redirect_to;
}
/**
* Add option to the event bulk actions dropdown.
*/
public function event_actions( $bulk_actions ) {
$bulk_actions['sp_postpone'] = __( 'Postpone events', 'sportspress' );
$bulk_actions['sp_cancel'] = __( 'Cancel events', 'sportspress' );
return $bulk_actions;
}
/**
* Handle form submission for event bulk actions.
*/
public function event_actions_handler( $redirect_to, $doaction, $post_ids ) {
if ( ! in_array( $doaction, array( 'sp_postpone', 'sp_cancel' ) ) ) {
return $redirect_to;
}
if ( 'sp_postpone' == $doaction ) {
foreach ( $post_ids as $post_id ) {
update_post_meta( $post_id, 'sp_status', 'postponed' );
}
$redirect_to = add_query_arg( 'sp_bulk_postponed_events', count( $post_ids ), $redirect_to );
} elseif ( 'sp_cancel' == $doaction ) {
foreach ( $post_ids as $post_id ) {
update_post_meta( $post_id, 'sp_status', 'cancelled' );
}
$redirect_to = add_query_arg( 'sp_bulk_cancelled_events', count( $post_ids ), $redirect_to );
}
return $redirect_to;
}
/**
* Display notices after form submission.
*/
public function admin_notices() {
if ( ! empty( $_REQUEST['sp_bulk_generated_calendars'] ) ) {
$count = intval( $_REQUEST['sp_bulk_generated_calendars'] );
printf( '<div id="message" class="updated notice notice-success is-dismissible"><p>' .
_n( 'Generated %s calendar.',
'Generated %s calendars.',
$count,
'sportspress'
) . ' <a href="' . admin_url('edit.php?post_type=sp_calendar') . '">' . __( 'View', 'sportspress' ) . '</a></p><button type="button" class="notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></button></div>', $count );
} elseif ( ! empty( $_REQUEST['sp_bulk_postponed_events'] ) ) {
$count = intval( $_REQUEST['sp_bulk_postponed_events'] );
printf( '<div id="message" class="updated notice notice-success is-dismissible"><p>' .
_n( 'Postponed %s event.',
'Postponed %s events.',
$count,
'sportspress'
) . '</p><button type="button" class="notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></button></div>', $count );
} elseif ( ! empty( $_REQUEST['sp_bulk_cancelled_events'] ) ) {
$count = intval( $_REQUEST['sp_bulk_cancelled_events'] );
printf( '<div id="message" class="updated notice notice-success is-dismissible"><p>' .
_n( 'Canceled %s event.',
'Canceled %s events.',
$count,
'sportspress'
) . '</p><button type="button" class="notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></button></div>', $count );
}
}
}
endif;

View File

@@ -5,7 +5,7 @@ Plugin URI: http://themeboy.com/
Description: Add countdown widgets to SportsPress.
Author: ThemeBoy
Author URI: http://themeboy.com/
Version: 2.6
Version: 2.7
*/
// Exit if accessed directly
@@ -17,7 +17,7 @@ if ( ! class_exists( 'SportsPress_Countdowns' ) ) :
* Main SportsPress Countdowns Class
*
* @class SportsPress_Countdowns
* @version 2.6
* @version 2.7
*/
class SportsPress_Countdowns {
@@ -42,7 +42,7 @@ class SportsPress_Countdowns {
*/
private function define_constants() {
if ( !defined( 'SP_COUNTDOWNS_VERSION' ) )
define( 'SP_COUNTDOWNS_VERSION', '2.6' );
define( 'SP_COUNTDOWNS_VERSION', '2.7' );
if ( !defined( 'SP_COUNTDOWNS_URL' ) )
define( 'SP_COUNTDOWNS_URL', plugin_dir_url( __FILE__ ) );

View File

@@ -5,7 +5,7 @@ Plugin URI: http://themeboy.com/
Description: Add vector performance icons to SportsPress.
Author: ThemeBoy
Author URI: http://themeboy.com/
Version: 2.6.8
Version: 2.7
*/
// Exit if accessed directly
@@ -17,7 +17,7 @@ if ( ! class_exists( 'SportsPress_Icons' ) ) :
* Main SportsPress Icons Class
*
* @class SportsPress_Icons
* @version 2.6.8
* @version 2.7
*/
class SportsPress_Icons {
@@ -49,7 +49,7 @@ class SportsPress_Icons {
*/
private function define_constants() {
if ( !defined( 'SP_ICONS_VERSION' ) )
define( 'SP_ICONS_VERSION', '2.6.8' );
define( 'SP_ICONS_VERSION', '2.7' );
if ( !defined( 'SP_ICONS_URL' ) )
define( 'SP_ICONS_URL', plugin_dir_url( __FILE__ ) );

View File

@@ -5,7 +5,7 @@ Plugin URI: http://themeboy.com/
Description: Integrate OpenStreetMap to SportsPress.
Author: ThemeBoy
Author URI: http://themeboy.com/
Version: 2.6.18
Version: 2.7
*/
// Exit if accessed directly
@@ -17,7 +17,7 @@ if ( ! class_exists( 'SportsPress_OpenStreetMap' ) ):
* Main SportsPress OpenStreetMap Class
*
* @class SportsPress_OpenStreetMap
* @version 2.6.18
* @version 2.7
*/
class SportsPress_OpenStreetMap {
@@ -45,7 +45,7 @@ if ( ! class_exists( 'SportsPress_OpenStreetMap' ) ):
*/
private function define_constants() {
if ( !defined( 'SP_OPENSTREETMAP_VERSION' ) )
define( 'SP_OPENSTREETMAP_VERSION', '2.6.18' );
define( 'SP_OPENSTREETMAP_VERSION', '2.7' );
if ( !defined( 'SP_OPENSTREETMAP_URL' ) )
define( 'SP_OPENSTREETMAP_URL', plugin_dir_url( __FILE__ ) );

View File

@@ -5,7 +5,7 @@ Plugin URI: http://themeboy.com/
Description: Add frontend styles to SportsPress.
Author: ThemeBoy
Author URI: http://themeboy.com/
Version: 2.3
Version: 2.7
*/
// Exit if accessed directly
@@ -17,7 +17,7 @@ if ( ! class_exists( 'SportsPress_Styles' ) ) :
* Main SportsPress Styles Class
*
* @class SportsPress_Styles
* @version 2.3
* @version 2.7
*/
class SportsPress_Styles {
@@ -43,7 +43,7 @@ class SportsPress_Styles {
*/
private function define_constants() {
if ( !defined( 'SP_STYLES_VERSION' ) )
define( 'SP_STYLES_VERSION', '2.3' );
define( 'SP_STYLES_VERSION', '2.7' );
if ( !defined( 'SP_STYLES_URL' ) )
define( 'SP_STYLES_URL', plugin_dir_url( __FILE__ ) );

View File

@@ -3,8 +3,8 @@ Contributors: ThemeBoy, brianmiyaji, aylaview, savvasha, nabil_kadimi
Tags: calendars, club, club management, esports, events, fixtures, leagues, league management, sports, sports club, sports data, team rosters
Donate link: http://tboy.co/donate
Requires at least: 3.8
Tested up to: 5.2
Stable tag: 2.6.20
Tested up to: 5.3
Stable tag: 2.7
License: GPLv3
License URI: http://www.gnu.org/licenses/gpl-3.0.html
@@ -240,6 +240,20 @@ When you upgrade to one of the SportsPress Pro licenses, you can simply activate
== Changelog ==
= 2.7 =
* Feature - New bulk actions to postpone and cancel multiple events.
* Feature - Add date of birth to player importer.
* Feature - Automatically select the home team's venue as the default venue when importing fixtures.
* Feature - Add ability to turn on comment for team profiles.
* Feature - Filter league tables by event status.
* Tweak - When an icon is used for player performance, display the icon in player lists and profiles.
* Tweak - Add title attribute for player statistic icons.
* Tweak - Default stylesheet sorting icon width.
* Fix - Icon color picker rendering issue.
* Fix - Image selector not working for player statistics.
* Fix - Enqueue scripts and styles for OpenStreetMap when used in shortcodes.
* Localization - Add translation options for countdown units.
= 2.6.20 =
* Tweak - Improve compatibility with volleyball for checkbox performance.
* Preset - Update volleyball preset with additional options.

View File

@@ -3,11 +3,11 @@
* Plugin Name: SportsPress
* Plugin URI: http://themeboy.com/sportspress/
* Description: Manage your club and its players, staff, events, league tables, and player lists.
* Version: 2.6.20
* Version: 2.7
* Author: ThemeBoy
* Author URI: http://themeboy.com
* Requires at least: 3.8
* Tested up to: 5.2
* Tested up to: 5.3
*
* Text Domain: sportspress
* Domain Path: /languages/
@@ -26,14 +26,14 @@ if ( ! class_exists( 'SportsPress' ) ) :
* Main SportsPress Class
*
* @class SportsPress
* @version 2.6.20
* @version 2.7
*/
final class SportsPress {
/**
* @var string
*/
public $version = '2.6.20';
public $version = '2.7';
/**
* @var SportsPress The single instance of the class

View File

@@ -4,7 +4,7 @@
*
* @author ThemeBoy
* @package SportsPress/Templates
* @version 1.9
* @version 2.7
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

View File

@@ -4,7 +4,7 @@
*
* @author ThemeBoy
* @package SportsPress/Templates
* @version 2.5.5
* @version 2.7
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

View File

@@ -4,7 +4,7 @@
*
* @author ThemeBoy
* @package SportsPress/Templates
* @version 2.6.19
* @version 2.7
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly